10 java集合框架
来源:互联网 发布:sql 数据库链接 编辑:程序博客网 时间:2024/09/21 09:01
java集合大方向分
Map集合接口 以键值对存放元素,键不可重复,值可重复
HashMap
线程不安全,允许键或值为null
new HashMap().put("key","值可为null")
new HashMap().keyset()键集合.iterator() 其中迭代器中项目可转(String)值
TreeMap
- 线程不安全,按键排序
HashTable
- 使用起来与HashMap类似
Collection集合接口
List集合接口 有顺序能重复
ArrayList
查询效率高,增删效率低,线程不安全,底层数组实现
List.removeall(list)以子集合的方法删除集合
LinkedList
查询效率低,增删效率高,底层双向循环链表实现
new LinkedList().add("添加元素")
set(0,"替换了第一个元素为当前值")
Vector
重量级,占用更多的系统开销,线程安全,底层数组实现
new Vector().subList(1,2)从第一个索引截取2个长度的集合
Stack
继承Vector,先进后出,后进先出
注意,push和pop是Stack类独有的,不能将Stack对象向上转型为List,
而indexOf则是List方法,故此类是失败产品
Set集合接口 无顺序不能重复
HashSet
增删速度快,底层数据结构是哈希表
当向hashset添加新对象时,如果集合中没有与新对象的"哈希码"相同的元素,则新对象
肯定不会重复。如果集合中有与新对象的"哈希码"相同的元素,则新对象是否重复
依赖于equals()方法
TreeSet
增删效率高,占用空间大
不能重复可自然[例如a,b,c基本数据类型,自定义类对象见范例]排序
--------------------------------------------------分隔符--------------------------------------------------
TreeSet排序范例
public class Person implements Comparable{
int age = 0; // 属性自行添加
String strname = "";
/* 实现比较器 */
public int compareTo(Object arg0) {
Person p = (Person)arg0;
int num = new Integer(this.age).compareTo(new Integer(p.age));
if(num==0)
return 0;
return num;
} }
==========>>将Person添入TreeSet中
Set treeSet = new TreeSet();
Person person = new Person();
person.setAge(5);
person.setStrname("xiangm1");
Person person2 = new Person();
person2.setAge(3);
person2.setStrname("xiangm2");
treeSet.add(person);
treeSet.add(person2);
Iterator it = treeSet.iterator();
while(it.hasNext())
{
....Person p = (Person)it.next();
....System.out.println("年"+p.getAge()+"名字"+p.getStrname());
}
- 10:java集合框架
- 10 java集合框架
- Java集合:集合框架
- 【Java】java集合框架
- [Java]Java集合框架
- JAVA集合框架和集合
- 【集合】Java集合框架介绍
- Java集合之集合框架
- [集合]Java的集合框架 Collection集合
- Java基础-集合框架10 枚举
- java基础10:集合框架,迭代器,泛型
- Java集合框架 (一)
- Java集合框架 (二)
- Java集合框架(三)
- Java集合框架
- 也来谈Java集合框架
- 也来谈Java集合框架
- Java集合框架 (一)
- Win7下VC++6.0打开文件报错导致其崩溃的解决办法
- Win7和VS2013上使用Intel的TBB
- linux 中信号
- AngularJs轻松入门(三)MVC架构
- iOS开发笔记7——Xcode 6中添加预编译pch文件
- 10 java集合框架
- 在Eclipse中查看JDK类库的源代码!!!
- Hello Kiki(hdu3579+不互质的中国剩余定理)
- android环境下摄像头数据采集及显示
- oracle中修改表名
- 用Python和Pygame写游戏-从入门到精通(22)
- 「HD_ACM」A+B for Input-Output Practice (III)
- window命令行的cd
- HDU 2018