首页 > 学院 > 开发设计 > 正文

集合各自特性

2019-11-06 09:03:59
字体:
来源:转载
供稿:网友

一、总结

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


上一篇:rediscluster master msg

下一篇:求助

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表