集合各自特性

来源:互联网 发布:大量淘宝小号实名认证 编辑:程序博客网 时间:2024/05/11 05:00

一、总结

---|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;}@Overridepublic int hashCode() {return this.id;}@Overridepublic boolean equals(Object obj) {Person p = (Person)obj;return this.id == p.id;}@Overridepublic 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
原创粉丝点击