Java思维---List接口与ArrayList实现类

112 阅读2分钟

一、List接口实现类

  1. ArrayList(数组线性表) List 接口的实现类。其内部基于一个大小可变数组来存储 允许存储 null 元素
  2. LinkedList(双向链表) List 接口的链接列表实现类 允许存储 null 元素
  3. Vector(向量) 功能和ArrayList一样 线程安全
  4. Stack(栈) 表示后进先出(LIFO)的对象堆栈

二、ArrayList类

Java入门之集合List接口(重写equals方法)

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();
    }

}