集合

java集合:所有集合都位于java.util包下,集合中只能包含对象(对象的引用),当我们把一个对象放入到集合中时,系统会把所有的集合元素都当成object类进行处理
java的集合类主要由2个接口派生而成:collection和map,collection和map是java集合的根接口,这两个接口又包含一些接口或实现类
list和set是collection派生的两个子接口,quenue(队列)类似于list,Map实现类用于保存具有映射关系的数据(key-value)
List集合是有序集合,集合中的元素可以重复,访问集合中的元素可以根据元素的索引来访问。
Set集合是无序集合,集合中的元素不可以重复,访问集合中的元素只能根据元素本身来访问(也是不能集合里元素不允许重复的原因)。
Map集合中保存Key-value对形式的元素,访问时只能根据每项元素的key来访问其value

集合去重复的方法:list集合转换为set集合
    public void removeDuplicate(List list) {
        Set set = new HashSet();
        List newList = new ArrayList();
        for (Iterator iter = list.iterator(); iter.hasNext(){
            Object element = iter.next();
                if (set.add(element))
                newList.add(element);
                } 
                list.clear();
            list.addAll(newList);
        System.out.println( " remove duplicate " + list);
}
接口      实现      历史集合类           
set     hashset
        treeset 
list    ArrayList   Vector
        LinkedList  Stack
Map     hashMap     hashTable
        TreeMap     Properties

List集合的最大的特点就是能够自动的根据插入的数据量来动态改变容器的大小,因此当我们不知道所要放入数据的长度时,我们可以采用list集合进行存储
HashMap的存入顺序和输出顺序无关,但是作为HashMap的子类LinkedHashMap,如果想要预知的顺序迭代(默认按照插入顺序),你可以很轻易的置换为HashMap,如果使用Hashtable就没那么容易了。

HashMap可以通过Map m = Collections.synchronizedMap(hashMap)来达到同步的效果

同步选择hashTable,异步选择hashMap
基本的不同点是Hashtable同步HashMap不是的,所以无论什么时候有多个线程访问相同实例的可能时,就应该使用Hashtable,反之使用HashMap。非线程安全的数据结构能带来更好的性能。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值