集合各自特性

一、总结

---|Collection: 单列集合

---|List: 有存储顺序, 可重复

---|ArrayList: 数组实现, 查找快, 增删慢

                由于是数组实现, 在增和删的时候会牵扯到数组

增容, 以及拷贝元素. 所以慢数组是可以直接按索引查找, 所以查找时较快

---|LinkedList: 链表实现, 增删快, 查找慢由于链表实现, 增加时只要让前一个元素记住自己就可以, 删除时让前一个元素记住后一个元素, 后一个元素记住前一个元素. 这样的增删效率较高但查询时需要一个一个的遍历, 所以效率较低

---|Vector: ArrayList原理相同, 但线程安全, 效率略低

 ArrayList实现方式相同, 但考虑了线程安全问题, 所以效率略低

---|Set: 无存储顺序, 不可重复

---|HashSet   线程不安全,存取速度快。底层是以哈希表实现的。

---|TreeSet   -黑树的数据结构,默认对元素进行自然排

                                序(String)。如果在比较的时候两个对象

                                返回值为0,那么元素重复。

---| Map: 键值对   键不可重复,键可以重复

---|HashMap    线程不安全,存取速度快。底层是以哈希表实现的.

---|TreeMap   -黑树的数据结构,默认对元素进行自然排

                序(String)。如果在比较的时候两个对象

                 返回值为0,那么元素重复

---|HashTable  底层也是使用了哈希表 维护的,存取的读取快,存储元素是

                         无序的。


二、代码

class Person{
	
	int id;
	
	
	String name;


	public Person(int id, String name) {
		super();
		this.id = id;
		this.name = name;
	}
	
	
	@Override
	public int hashCode() {
		return this.id;
	}
	
	@Override
	public boolean equals(Object obj) {
		Person p = (Person)obj;
		return this.id == p.id;
	}
	
	@Override
	public String toString() {
		return "编号:"+ this.id +" 姓名: "+ this.name;
	}
}

public class Demo1 {
	
	public static void main(String[] args) {
		HashSet<Person> set = new HashSet<Person>();
		set.add(new Person(110,"狗娃"));
		set.add(new Person(110,"狗娃"));
		System.out.println("集合的元素:"+ set);
		
		
		
	}
	
}


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 12
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 12
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值