1、集合
在Java语言中,Java语言的设计者对常用的数据结构和算法做了一些规范(接口)和实现(具体实现接口的类)。所有抽象出来的数据结构和操作(算法)统称为Java集合框架(JavaCollectionFramework)。
Java程序员在具体应用时,不必考虑数据结构和算法实现细节,只需要用这些类创建出来一些对象,然后直接应用就可以了,这样就大大提高了编程效率。
Collection Map
-List -HashMap
-ArrayList -HashTable
-LinkedList
-Vector
-Stack
-Set
-HashSet
-TreeSet
2、List
List是有序的Collection,使用此接口能够精确的控制每个元素插入的位置。用户能够使用索引(元素在List中的位置,类似于数组下标)来访问List中的元素,这类似于Java的数组。
和后面要学习到的Set不同,List允许有相同的元素。
实现List接口的常用类有LinkedList,ArrayList,Vector和Stack。
3、ArrayList
ArrayList实现了可变大小的数组。它允许所有元素,包括null。
每个ArrayList实例都有一个容量(Capacity),即用于存储元素的数组的大小。这个容量可随着不断添加新元素而自动增加,但是增长算法并没有定义。当需要插入大量元素时,在插入前可以调用ensureCapacity方法来增加ArrayList的容量以提高插入效率。
4、LinkedList
LinkedList实现了List接口,允许null元素。此外LinkedList提供额外的get,remove,insert方法在 LinkedList的首部或尾部。这些操作使LinkedList可被用作堆栈(stack),队列(queue)或双向队列(deque)。
5、示例代码
import java.util.LinkedList;
public class Demo41 {
public static void main(String[] args) {
// ArrayList<Integer> arrayList = new ArrayList<>();
// arrayList.add(1);
// arrayList.add(2);
// arrayList.add(3);
//
// for (int i = 0; i < arrayList.size(); i++) {
// int tmp = (int) arrayList.get(i);
// System.out.println(tmp);
// }
LinkedList<String> linkedList = new LinkedList<>();
linkedList.add("1");
linkedList.add("2");
linkedList.add("3");
linkedList.addFirst("4");
for (int i = 0; i < linkedList.size(); i++) {
String tmp = (String) linkedList.get(i);
System.out.println(tmp);
}
}
}