集合:工具类,像容器存储任意数量的具有相同属性的对象

       作用:在类的内部,对数据进行组织

SRE实战 互联网时代守护先锋,助力企业售后服务体系运筹帷幄!一键直达领取阿里云限量特价优惠。

集合使用来承载其他对象的容器

与数组相比,选集合的理由:

       数组的长度固定,需要复制,集合长度可变;

       数组只能通过数组下标访问元素,类型固定,而有的集合可以通过任意类型查找锁映射的具体对象,数组还要遍历元素比较麻烦

  Java集合复习 随笔

 

 

类:

List(序列):排列有序,可重复,List关注的是索引,拥有一系列和索引相关的方法,查询速度快,插入删除速度慢

Queue(队列):排序有序,可重复,

Set(集):无序,不可重复

 

Map:

Entry类(键值对)是Map的内部类,Key,Value就是Entry的实例,key和value可以是任意类型的对象

 

ArrayList数组序列,LinkedList链表,HashSet哈希集,HashMap哈希表

 

 

在每个Collection类中,存储的就是一个个独立的对象,而Map类的内部,一个key一个value两个对象为一个映射去存储数据,这样的一个映射就是Entry类的实例,这个Entry类是Map类的一个内部类,

 

 

 

 

 

 

ArrayList查询速度快,插入删除速度慢,当插入删除时,会伴随着后面数据的移动

基于数组,按照添加的先后顺序排列

 

LinkedList基于链表,是双向链表,包括头指针和尾指针,和数据域

遍历:

       Iterator:迭代输出

       ListIterator:Iterator的子接口,专门用于输出List中的内容

       Foreach:用于遍历数组和集合

      

       Iterator:

              Iterator it=arrayList.Iterator();

              While(it.hasNext()){Object o=it.next();…}

 

 

 

HashSet:

       Void clear()从set移除所有元素

       Boolean contains(Object o)判断set是否包含o这个元素

       Int size()  返回此set中的元素的数量(set的容量)

 

Map(线程不安全,允许null作为key和value,key不可以重复,value可以重复):

       V put(K key,V value)

       Int size()  返回此map中的元素的而数量

 

       遍历:

              KeySet()

将map中所有的键存入到set集合中,因为set具有迭代器,所以可以用迭代方式取出所有的键,在根据get方法获取每一个键对应的值,keySet();迭代器后只能通过get()取key

取到的结果会是乱序,因为取得数据行主键的时候,使用了HashMap.keySet()方法,而这个方法返回的Set结果,里面的数据是乱序排放的

              Values():获取所有的值

                     不能获取key对象

              entrySet()

Set<Map.Entry<K,V>> entrySet();  返回此映射中包含的映射关系的Set视图,就是把(key-value)作为一个整体一对一地存放发到Set结合中。Map.Entry表示映射关系,entrySet(); 迭代后可以e.getKey(),   e.getValue()两种方法来取key和value,返回的是Entry接口:

       Set<Map.Entry<Integer,String>> es=map.entrySet();

       Iterator<Map.Entry<Integer,String>> it=es.iterator();

       While(it.hasNext()){

              Map.Entry<Integer,String> en=it.next();

              Integer key=en.getKey();

              String value=en.getValue();

}

                     推荐使用第三种,效率高

对于keySet其实是遍历了两次,一次是转为iterator,一次是从HashMap中取出key和value。而entryset只是遍历了第一次,他把key和value都放到了entry中,

 

扫码关注我们
微信号:SRE实战
拒绝背锅 运筹帷幄