集合框架
Java 集合框架可以分为两条大的支线:
1、Collection,主要由 List、Set、Queue 组成:
- List 代表有序、可重复的集合,典型代表就是封装了动态数组的 ArrayList 和封装了链表的 LinkedList;
- Set 代表无序、不可重复的集合,典型代表就是 HashSet 和 TreeSet;
- Queue 代表队列,典型代表就是双端队列 ArrayDeque,以及优先级队列 PriorityQueue。
2、Map,代表键值对的集合,典型代表就是 HashMap。
一、List
- 特点:存取有序,可以存放重复的元素,可以用下标对元素进行操作。
1)javabetter.cn/collection/arraylist.html#_01%E3%80%81%E5%88%9B%E5%BB%BA-arraylist" rel="nofollow">ArrayList
-
特点:
- ArrayList 是由
动态数组
实现的,支持随机存取,也就是可以通过下标直接存取元素; - ArrayList 在数组的基础上实现了自动扩容,并且提供了比数组更丰富的预定义方法(各种增删改查),非常灵活;
- 从尾部插入和删除元素会比较快捷,从中间插入和删除元素会比较低效,因为涉及到数组元素的复制和移动;
- 如果内部数组的容量不足时会自动扩容,因此当元素非常庞大的时候,效率会比较低
- ArrayList 是由
-
创建:
java">//下面两个创建的效果是差不多的 ArrayList<String> alist = new ArrayList<String>(); List<String> alist = new ArrayList<>(); //非常确定 ArrayList 中元素的个数,在创建的时候还可以指定初始大小 List<String> alist = new ArrayList<>(20);
-
功能:
- 基本数组的增删改查,不过当添加删除中间的元素时,对应后续的元素位置得跟着向后向前移,考虑时间复杂度等性能
- 扩容需要重新复制数组的