List接口及其实现类ArrayList、LinkedList、Vector
List接口:java中数组用来存储数据的局限性List集合中元素有序、可重复,集合中的每个元素都有其对应的顺序索引。list容器中的元素都对应一个整数型的序号记载其在容器中的位置,可以根据序号存取容器中的元素。JDK API中list接口的实现类常用的有:arraylist、linkedlist和Vector。List集合里添加了一些根据索引来操作集合元素的方法Array...
·
List接口:
java中数组用来存储数据的局限性
List集合中元素有序、可重复,集合中的每个元素都有其对应的顺序索引。
list容器中的元素都对应一个整数型的序号记载其在容器中的位置,可以根据序号存取容器中的元素。
JDK API中list接口的实现类常用的有:arraylist、linkedlist和Vector。
List集合里添加了一些根据索引来操作集合元素的方法
ArrayList:
ArrayList是List接口的典型实现类
本质上,ArrayList是对象引用的一个变长数组
ArrayList是线程不安全的,而Vector是线程安全的,即使为保证List集合线程安全,也不推荐使用Vector
Arrays.asList()方法返回的List集合既不是ArrayList实例,也不是vector实例,而是一个固定长度的List集合
package com.xatu.集合;
import java.util.ArrayList;
import java.util.List;
import org.junit.Test;
class Student{
String name;
int age;
}
public class LIstTest {
@Test
public void testArrayList() {
List l = new ArrayList<>();
l.add(new Integer(100));
System.out.println("添加200结果1"+l.add(200));
System.out.println("添加200结果2"+l.add(200));
System.out.println("添加一个对象"+l.add(new Student()));
l.add("aaa");
l.add("aaa");
l.add(0,new Student());
l.set(1, 2000);//替换
System.out.println("大小"+l.size());
System.out.println(l.indexOf("aaa"));//5
System.out.println(l.indexOf("aaa"));//5
List sl = l.subList(3, 6);
System.out.println("sl"+sl);//
for (Object object : l) {
System.out.println(object);
}
System.out.println("-------------");
//正常循环打印
for (int i = 0; i < l.size(); i++) {
System.out.println(l.get(i));
}
}
}
LinkedList:
对于频繁的插入或删除元素的操作,建议使用LinkedList类,效率较高
Vector:
大多作用与ArrayList相同,区别Vector线程安全。
在各种list中,最好把ArrayList作为缺省选择。当插入、删除频繁时,使用LinkedList,vector总是比ArrayList慢所以尽量避免使用
更多推荐
已为社区贡献5条内容
所有评论(0)