List接口
存储有序的、可重复的数据。"动态"数组,替换原有的数组
ArrayList、LinkedList、Vector
三者异同: 相同点:
都实现了List接口,存储数据的特点相同:存储有序的,可重复的数据
不同:
ArrayList:作为接口的主要实现类,执行效率高,线程不安全,效率高。底层使用Object[]存储 elementData存储LinkedList:对于频繁的插入、删除操作,使用此类效率比ArrayList高。底层使用的双向链表存储Vector:作为List接口的古老实现类(JDK1.0时期就存在),线程安全的,效率低。底层使用Object[]存储 elementData存储
List接口中的常用方法
ArrayList:作为接口的主要实现类,执行效率高,线程不安全,效率高。底层使用Object[]存储 elementData存储LinkedList:对于频繁的插入、删除操作,使用此类效率比ArrayList高。底层使用的双向链表存储Vector:作为List接口的古老实现类(JDK1.0时期就存在),线程安全的,效率低。底层使用Object[]存储 elementData存储List接口的方法:void add(int index,Object ele):在index位置上插入ele元素boolean addAll(int index,Collection eles):从index位置开始将else中的所有元素添加进来Object get(int index):获取指定index位置的元素int indexOf(Object obj):返回obj在当前集合中首次出现的位置int lastIndexOf(Object obj):返回obj在当前集合中末次出现的位置Object remove(int index):移除指定index位置的元素,并返回此元素Object set(int index,Object ele):设置指定index位置的元素为eleList subList(int fromIndex,int toIndex):返回从fromIndex到toIndex位置的子集合
public class ListTest {
@Test
public void test1(){
ArrayList list
=new ArrayList();
list
.add(123);
list
.add(456);
list
.add("AA");
list
.add(new String("TOM"));
list
.add(123);
list
.add("ABC");
System
.out
.println(list
);
list
.add(1,"BB");
System
.out
.println(list
);
List list1
= Arrays
.asList(1, 2, 3);
list
.addAll(2,list1
);
System
.out
.println(list
);
System
.out
.println(list
.get(1));
}
@Test
public void test2(){
ArrayList list
=new ArrayList();
list
.add(123);
list
.add(456);
list
.add("AA");
list
.add(new String("TOM"));
list
.add(123);
list
.add("ABC");
list
.add("TOM");
int index
= list
.indexOf(123);
System
.out
.println(index
);
System
.out
.println(list
.lastIndexOf("TOM"));
Object remove
= list
.remove(4);
System
.out
.println(remove
);
System
.out
.println(list
);
Object object
= list
.set(3, "abc");
System
.out
.println(object
);
System
.out
.println(list
);
List list1
= list
.subList(1, 4);
System
.out
.println(list1
);
}
@Test
public void test3(){
ArrayList list
=new ArrayList();
list
.add(123);
list
.add(456);
list
.add("AA");
Iterator iterator
=list
.iterator();
while (iterator
.hasNext()){
System
.out
.println(iterator
.next());
}
for (Object obj
: list
) {
System
.out
.println(obj
);
}
for (int i
= 0; i
< list
.size(); i
++) {
System
.out
.println(list
.get(i
));
}
}
总结常用方法:
增:add(Object obj)删:romove(int index)//remove(Object obj)改:set(int index,Object obj)查:get(int index)插:add(int index,Object obj)长度:size()遍历:①Iterator迭代器方式 ②增强for循环 ③普通的循环