java中List的实现类

public class Person {
	private String name;
	int age;
	
	public Person() {
		// TODO Auto-generated constructor stub
	}

	public Person(String name, int age) {
		super();
		this.name = name;
		this.age = age;
	}

	public String getName() {
		return name;
	}

	public void setName(String name) {
		this.name = name;
	}

	public int getAge() {
		return age;
	}

	public void setAge(int age) {
		this.age = age;
	}

	@Override
	public String toString() {
		return "Person [name=" + name + ", age=" + age + "]";
	}


	@Override
	public boolean equals(Object obj) {
		if (this == obj)
			return true;
		if (obj == null)
			return false;
		if (getClass() != obj.getClass())
			return false;
		Person other = (Person) obj;
		if (age != other.age)
			return false;
		if (name == null) {
			if (other.name != null)
				return false;
		} else if (!name.equals(other.name))
			return false;
		return true;
	}
	
	
}
/**
 * list的实现类
 * 	ArrayList 
 * 		底层实现: 是由可变数组实现的,通过数组的拷贝实现
 * 		优点: 查询效率高
 * 		缺点: 添加,删除效率低,需要大量的使用数组的拷贝,效率较低
 * 		使用: 大量做查询的时候使用
 * 		扩容机制: int newCapacity = oldCapacity + (oldCapacity >> 1); 新容量每次扩容原来的1.5倍,使用copyOf方法进行动态扩容
 * 		
 * 		存储自定义的引用数据类型的数据,使用任何比较数据是否相等的方法,需要手动重写equals方法
 *  
 *  Vector 向量
 *   区别:
 *   	1.ArrayList线程不安全的   Vector同步的线程安全的
 *   	2.ArrayList扩容原容量的1.5倍   Vector扩容原容量的2倍
 * 
 *
 *  LinkedList
 *  	底层: 使用双向链表结构实现
 *  	优点: 做增删效率高
 *  	缺点: 查询效率低
 *  	使用: 大量做增删的时候使用
 *  	新增: 新增了一些操作于链表头尾的方法
 *  
 *  问: ArrayList和LinkedList,Vector之间的区别
 */
public class ArrayListDemo03 {
	public static void main(String[] args) {
		ArrayList<Person> list=new ArrayList();
		
		list.add(new Person("张三",18));
		list.add(new Person("李四",19));
		//默认比较对象的地址,因为多个new多个对象,重写equals方法
		System.out.println(list.indexOf(new Person("张三",18)));  //0
		
		

	}
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值