java 集合类

List接口是有序的Collection,与set不同的是List允许有相同的元素。除了Iterator()方法外,List还提供ListIterator()方法,其返回ListIterator接口,此接口多了一些add()之类的方法,允许添加、删除、设定元素,还可以向前向后遍历。

实现List接口的常用类有LinkedList、ArrayList、Vector、Stack等

(1)LinkedList类:允许null元素,无同步方法,如果多线程访问,需要自己实现访问同步,可以在创建List时构造一个同步的List

List list = Collections.synchronizedList(new LinkedList(·····));

此类在首部或尾部提供get() remove() insert()方法,使得它可以被用作堆栈、队列、双向队列等。

(2)ArrayList类:实现了可变大小的数组,允许所有元素,包括null,无同步。若需插入大量元素插入前可调用ensureCapacity()方法增加容量。

(3)vector类:与ArrayList相似,但是它是同步的,当Iterator被创建且正在使用时,另一线程改变了Vector的状态则会抛出ConcurrentModificationException,需要捕获。

(4)Stack类:继承自Vector,提供push() pop() 还有peek()方法获取栈顶元素。

 

Set接口是不包含重复元素的Collection,最多允许一个null元素。

(1)Hashset:允许null值,不同步。比较hashCode看是否相同,对象元素比较可以重写hashCode和equals方法。由hashMap实例支持,不保证集合的迭代顺序

(2)TreeSet:用二叉树保存对象,添加元素按照二叉排序树构建;由treeMap实例支持,是一个有序集合,按自然顺序排列元素或者按照在创建set 时提供的比较器进行排序,这意味着其中的元素要实现comparable接口;也可以在构建treeSet时传递实现了comparator接口的比较器对象

 

Map映射接口没有继承Collection接口,其提供key和value映射

(1)Hashtable:同步的;作为key对象都必须实现hashCode()和equals()方法。如果两个对象相同,hashCode一定相同;两个对象不同,则他们的hashCode不一定不同。

(2)HashMap:不同步且允许一个或多个null值,它的values()方法返回Collection,用它的iterator可以迭代其中所有元素。entrySet()方法获取Set<Entry<xx,xx>>集合对象,通过遍历Set可以得到所有的key和value;

Vector Hashtable Stack不推荐使用。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值