collection接口与map接口

根据下图进行对collection接口和map接口下的所有集合进行图解 

collection与map图解

一. collection接口是集合框架的顶级接口(set与list的父接口,不是map集合的父接口)

1.list集合图解

  • list集合是有序的,可以重复,只能添加引用数据类型(八大基本数据类型)
  • list集合有三种遍历方式
  1. 下标遍历(remove对象的时候会进行隔行逻辑操作)
  2. foreach遍历(remove对象会有当前改变异常 不能进行移除)
  3. 迭代器遍历(正常操作)
  • list与数组最大的区别在于数组有长度的限制而list并没有(但是其实list是有长度的)每次 初始容量10,负载因子0.5也就是说会以1.5的增加量在list集合里面扩容
  1. //1.下标遍历
    
    List list=new ArrayList<>();
            list.add(23);
    		list.add(25);
    		list.add(26);
    		list.add(27);
    		list.add(24);
    		list.add(22);
    for (int i = 0; i < list.size(); i++) {
        Object obj=list.get(i);
    	System.out.println(obj);
    }
    
    //2.foreach遍历
    for (Object obj : list) {
    	System.out.println(obj);
    }
    
    //3.迭代器遍历
    ListIterator it=list.listIterator();
    		while(it.hasNext()) {
    		Object obj=it.next();
    		System.out.println(obj);
    }

    1.vector与ArrayList的区别

  • ArrayList   线程安全低  不同步(单个线程访问集合) 速度快

  • vector  线程安全高 同步(多个线程访问集合) 速度慢

2.set集合图解

set 集合在1.8以上是有序的

1.7以下(针对除开integer string的引用数据类型是无序的)

 

 结果 表明 是散列排序

  1. set集合无序、对象不能重复(eqauls)      (eqauls从Object继承,默认比较的内存地址)
  2. hashset的排序是散列排序(随机排序)关于hashset有序的问题
  3. treeset被称为平衡树/红黑树/二叉树(排序:字符串比的不是数值,按首位的ASCII码进行,如果相同,则对比下一位,始终一致的话,则对比长度;
  4. hashset与hashtable的区别

          1.hashset用来做高性能集运算的,例如对两个集合求交集、并集、差集等。集合中包含一组不重复出现且无特性顺序的元素,HashSet拒绝接受重复的对象。

            2. hashtable用于处理和表现类似key-value的键值对,其中key通常可用来快速查找,同时key是区分大小写;value用于存储对应于key的值。

二.map接口图解

1.无序、以键值对的形式添加元素,键不能重复,值可以重复,如果键相同,值会覆盖
            它没有继承Collection接口
  2 遍历
          2.1 先取出保存所有键的Set,再遍历Set即可
          2.2 先取出保存所有Entry的Set,再遍历此Set即可(快速遍历Map)

三.比较器接口(Comparator)与自然排序接口(Comparable)

1. java.lang.Comparable:自然排序接口
2. java.util.Comparator:比较器接口

使用比较器接口实现类对象属性的排序比如:

1.实现比较器接口

实现方法(完成排序)

2.实现自然排序接口

重写方法(实现排序)

--------------------- 本文来自 笑而不语的猫 的CSDN 博客 ,全文地址请点击:https://blog.csdn.net/qq_43224049/article/details/82759074?utm_source=copy

猜你喜欢

转载自blog.csdn.net/qq_43227109/article/details/82972305