一、List接口实现类
- ArrayList(数组线性表) List 接口的实现类。其内部基于一个大小可变数组来存储 允许存储 null 元素
- LinkedList(双向链表) List 接口的链接列表实现类 允许存储 null 元素
- Vector(向量) 功能和ArrayList一样 线程安全
- Stack(栈) 表示后进先出(LIFO)的对象堆栈
二、ArrayList类
List是一个接口,List接口不能被构造,
也就是我们所说的不能创建实例对象。
但我们可以为List接口创建。
ArrayList是List接口的一个实现类。
ArrayList继承并实现了List接口。
示例:
定义一个Animal类
public class Animal {
private String name;
void intro(){
System.out.println("This is:"+name);
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
}
List接口创建ArrayList实现类
import java.util.List;
import java.util.ArrayList;
public class Test {
public static void main(String[] args) {
// TODO Auto-generated method stub
List<Animal> animallist=new ArrayList();
Animal Dog1=new Animal();
Animal Dog2=new Animal();
Animal Dog3=new Animal();
Dog1.setName("Tom");
Dog2.setName("Jack");
Dog3.setName("Mike");
//将对象放入数组中
animallist.add(Dog1);
animallist.add(Dog2);
animallist.add(Dog3);
animallist.add(Dog1);
// .add(arg0, arg1)方法:
// 向数组中指定位置插入指定对象
animallist.add(1, Dog3);
// 判断某个对象是否在对象列表里
// .contains()方法返回的是boolean类型
System.out.println(animallist.contains(1));
// indexOf()返回的是int类型
// 不仅能够知道是否有包含,还知道包含的位置
// 有找到返回找到的个数,没有返回-1
System.out.println(animallist.indexOf(Dog1));
// 若要获取重复对象第一次出现的索引位置可以使用indexOf()方法
// 要获取重复对象最后一次出现的索引位置使用lastIndexOf()方法
System.out.println(animallist.lastIndexOf(Dog1));
// .remove()方法通过下标索引删除数组中的对象
// .remove(Object)方法通过寻找对象删除数组中的对象
// 删除的是数组中首次出现的目标对象
animallist.remove(1);
animallist.remove(Dog1);
// animallist.size()方法用来返回数组中对象的个数
int n=animallist.size();
System.out.println(n);
// .equals()方法用来判断字符串内容是否一致,返回布尔类型
System.out.println(animallist.equals(Dog1));
// animallist.clear()方法用来清除数组内容
// animallist.clear();
for(int i=0;i<3;i++)
animallist.get(i).intro();
}
}