List 接口
List集合代表一个元素有序、可重复的集合,集合中每一个元素都有其对应的顺序连接。List允许使用重复元素,可以通过索引来访问指定位置的集合元素。List集合默认按元素的添加顺序设置元素的索引
List集合储存元素的特点:
有序可重复: 有序:List集合中的元素有下标,从0开始,以1递增; 可重复:储存的数据可以重复;
List集合特色的方法:
List 接口和ListIterator接口
List接口是Collection接口的子接口;
关于List接口中的常用方法:
public class ListTest {
public static void main(String[] args) {
List books=new ArrayList();
//给集合中添加元素
books.add("英语");
books.add("数学");
books.add("化学");
System.out.println(books);
//将新对象插在第二个位置
books.add(1,"体育");
System.out.println(books);
//遍历集合中的元素
for (int i = 0; i <books.size() ; i++) {
System.out.println(books.get(i));
}
//删除第三个元素
Object obj=books.remove(2);
System.out.println(obj);
//将第3个元素替换成,"物理"
books.set(2,"物理");
System.out.println(books);
//从集合中截取一个子集和,返回一个List集合;
List list=books.subList(1,2);
System.out.println(list);
System.out.println(books);
}
}
List 接口下面主要有两个实现ArrayList
和LinkedList,他们都是有顺序的,也就是放进去是什么顺序,取出来还是什么顺序,也就是基于线性存储,可以看作是一个可变数组
ArrayList:查询数据比较快,添加和删除数据比较慢(基于可变数组)
LinkedList:查询数据比较慢,添加和删除数据比较快(基于链表数据结构)
Vector:Vector 已经不建议使用,Vector 中的方法都是同步的,效率慢,已经被 ArrayList
取代
Stack 是继承Vector 实现了一个栈,栈结构是后进先出,目前已经被LinkedList 取代
List接口的实现类ArrayList
ArrayList类的特点:
ArrayList类底层是Object类新的数组Object[];
ArrayList类的初始化容量是10(底层先创建了一个长度为0的数组每,当向集合中添加第一个元素的时候,集合的容量初始化为10);
ArrayList类中的size()方法是获取当前集合中元素的个数,不是用来获取集合的容量的。
1.3.2 LinkedList
链表数据结构:分为单链表和多链表结构;
单链表结构
双链表
用法同ArrayList
修改为HashSet 实现类,重点了解面向接口编程的好处

被折叠的 条评论
为什么被折叠?



