Java集合List学习笔记

------------恢复内容开始------------

Java集合可分为Collection和Map两种体系。

Collection接口:单列数据,定义了存取一组对象的方法和集合

  List:元素有序,可重复的集合。--》“动态”数组

      实现类:ArrayList、LinkedList、Vector

  Set:元素无序,不可重复的集合  --》“高中讲的集合”

      实现类:HashSet、LinkedHashSet、TreeSet

Map借口:双列数据,保存具有映射关系的数据“Key-value对”的集合。---》高中函数y=fx

  实现类:HashMap、LinkedHashMap、TreeMap、HashTable、Properties。

 

三、Collection接口中的方法

   1、常用方法

equals方法重写,remove才能删掉集合中的某些值。

集合转数组-》集合

toArray()

数组-》集合

asList()

  2、使用iterator接口:提供一种方法访问一个容器对象中的各个元素,而不暴露内部细节。

 hasnext判断

isnext输出当前值。

while(iterator.hasnext()){

 sout(iterator.next);

}

每次调用iterator方法都得到一个权限的迭代器对象,所以不能在while一直调用iterator。

没有调用next不能调用remove,不能连续两次remove。

 

增强for循环

for(集合元素的类型 局部变量:集合对象)

把集合中的对象赋值给了局部变量

 for(Object obj:col){

sout(obj);

 

ArrayList:作为List借口的主要实现类,线程不安全,效率高

LinkedList:底层使用的是双向链表存储。对于频繁的插入和删除比ArrayList效率更高。

Vector:作为List接口最古老的实现类,线程安全,效率低。底层使用的是Object[]的存储。

ArrayList、LinkedList、Vector三者的异同

同:三个类都是实现了List接口,存储数据的特点相同:存储有序的,可重复的数据。底层使用的是Object[]的存储。

不同:见上。

 

ArrayList源码分析:

 

 

 

 

 

 

 

 

 

 

 

 

 

1、Java数组有局限性,通常使用List替代数组

2、List集合类中元素有序、且可重复,集合中的每个元素都有顺序索引。

3、List容器中的元素都对应一个整数型的序号,可以根据序号存取容器中的元素。

4、JDK API中List借口的实现类常用的有:ArrayList、LinkedList和Vector。

 

 

------------恢复内容结束------------

posted @ 2021-09-13 08:58  雷雷提  阅读(39)  评论(0编辑  收藏  举报