常用集合用法及区别

java集合框架图 :

  

简化图: 

              

Collection:接口

 |=List元素可重复,有序

 |=ArrayList可变数组、线程不同步、可存null实现了可变大小的数组(数据结构),不是线程同步。它允许所有元素,包括null,                       索引值从0开始。<查询数据,效率高>

 |=LinkedList双向链表,非线程安全以链表的形式存储元素(数据结构),不是线程同步的,它允许所有元素,包括null。<插入、                      删除数据,效率高>

 |=Vector可变数组,线程安全,效率低。特有遍历:Enumeration en = stack.elements();。

 |=Stack:栈Stack继承Vector,实现一个后进先出(filo)的堆,索引从 1  开始。

 |=Set元素不可重复,无序(除了Treeset以外)

 |=HashSet行散列表<自定义类的对象作为元素存入,必须重写hashcode()以及equals()方法>。

 |=TreeSet二叉树(红黑树),元素必须可排序;< 自定义类的对象比较方式:①对象所属类继承Comparable(),②自定义比较器继                     承Comparator()>。

Iterator:迭代器;Iterator it = list.iterator();while (it.hasNext()) {};

② 增强型for循环;for (Iterator it = list.iterator();it2.hasNext();) {};

工具类 Collections;自然顺序排序:sort(list);随机排序:shuffle(list);反转:reverse(list);2复制到1:copy(list1, list2);

④工具类 Arrays;数组转集合:asList(arr);自然顺序排序sort(arr);2复制到1:copy(arr1,arr2);

Map:①通过“键-值”映射对形式存储,键唯一,底层的“键”是用Set来存放的;存入Map中的映射对的“键”对应的必须重写hashcode()和                           equals()方法。

          |=HashMap:(哈希表,非线程安全)底层数据结构是哈希表,键唯一不可重复,非线程安全,可存null键null值

          |=TreeMap:(二叉树(红黑树),键可排序

          |=Hashtable:(哈希表,线程安全,占用资源比较多,效率低(少用)

①遍历方式:

     keySet();Set<String> key = mp.keySet();

     entrySet();Set<Map.Entry<String, String>> ent = mp.entrySet();

②List跟Map嵌套;ArrayList<HashMap<Person, String>> list = new ArrayList<>();

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值