集合框架介绍

------- android培训java培训、期待与您交流! ----------

集合框架介绍


1. 集合框架

值得说明一下的是,Vector,hashtable是java1.1中定义的集合类,并不继承自该体系结构,在java1.2之后,Vector实现了List接口,而Hashtable实现了Map接口,与其他java1.2之后定义的新集合类整合在了一起。不过由于历史原因,其原来的增删和遍历的方法可以继续使用。

2. 集合接口

(1) List接口

元素已先行方式存储,存储顺序与添加的顺序相同。

常用的实现该接口的类有:ArrayList, LinkedList, Vector, Stack

ArrayList是长度可变的对象引用数组,内部实现为动态数组,进行查询和遍历的性能比较高,而删除插入的效率则比较低。

LinkedList也是长度可变的队列,不过内部实现为链表,故其查询和遍历的效率比之ArrayList要低一些,而对大量数据进行增删操作的效率则要高得多。

VectorStack都是Java 1.1中定义的集合类,其用法略有不同。

(2) Map接口

元素以键-值映射对形式存储,并且键值不允许重复。常用实现Map接口的类有HashMap, Hashtable, TreeMapHashMap允许有一个键值为null的元素,HashtableTreeMap都不允许。HashMap是线程不安全的,而Hashtable是线程安全的。在TreeMap中,元素按照键值的自然顺序进行插入排序。

(3) Set接口

元素的顺序是不固定的,元素不允许重复。

是此案Set接口的类有HashSetTreeSetHashSet中中只允许一个null元素。TreeSetSet的一种变体,可以按照自然顺序排序。在添加元素时会将其插入到已经有序的元素序列中。

3. 集合遍历

(1) IteratorIterable接口

Iterator接口可以以统一的方式对各种集合元素进行遍历,也称为“迭代器”。实现了Iterable接口的集合类,可以调用iterator()方法获得Iterator对象,然后通过hasNext()next()防火队集合中元素进行遍历或者移除操作。

hasNext()方法检测集合中是否还有下一个元素。

next()方法返回集合中的下一个元素。

Iterator遍历集合元素的方法:

Iterator<Student> it = stuList.iterator();
while(it.hasNext()){
   	Student s = it.next();
}
//或者使用其简写形式
while(Student s : stuList){
   	Student s = s;
}

当然也可以通过下标直接访问,不再详述。

(2) Map集合遍历

Map因为其元素和结构的特殊性,所以遍历方式也比较多。

Map<String,Student> stuMap = getStuMap();
//1. 通过Map的keySet()方法遍历
Set<String> stuKeys = stuMap.keySet();
for(String key : stuKeys){//由于是对Set的遍历,元素顺序是不固定的
	Student s = stuMap.get(key);
}
//2. 使用Map的entrySet()方法遍历,Map.Entry是指一个单独的键值对映射
Set<Map.Entry<String,Student>> entrySet = stuMap.entrySet();
for(Map.Entry<String,Student>> entry : entrySet){
	Student s = entry.getValue();
} 
//3. 使用Map的values()方法,该方法放回存储元素的Collection对象
Collection<Student> stus = (Collection<Student>)stuMap.value();
for(Student s : stus){
	Student s = s;
}

4. CollectionsComparable

Collections中提供了一套对集合进行排序、遍历等多种算法的实现,如sort()reverse()shuffle()。因为其排序的依据是根据集合中元素的compreTo()方法进行比较,所以如果要调用其相关方法,集合中元素对应的类最好实现Comparable接口,并实现其int CompreTo(Object o)方法。

------- android培训java培训、期待与您交流! ----------

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值