黑马程序员学习笔记——集合总结

---------------------- ASP.Net+Unity开发.Net培训、期待与您交流! ----------------------


恩,集合,顾名思义,就是将各种对象放到一个容器里,跟数组的区别:长度可变,存储对象可以不同

主要有两大类,Collection 和 Map

1.Collection

Collection是一个集合的接口,他下面的子类有:

1.1 List接口:有序,有索引,可重复

1.1.1 ArrayList:底层以数组实现,增删满,查询快,不同步

1.1.2 LinkedList:底层以链表实现,增删快,查询满,不同步

1.1.3 Vector:以数组实现,被ArrayList取代,线程同步

Note:对于是否存在以及删除等操作,依赖的方法是元素的HashCode()和equals()方法;

而ArrayList对于判读存在以及删除等,用的只有equals()方法

1.2 Set接口:无序,无索引,不可重复

1.2.1 HashSet无序,不重复,高效,底层以哈希表实现。不同步

保证元素唯一性的实现原理:HashCode方法和equals方法,如果HashCode相同,直接存入;如果HashCode的值相同,则调用equals方法,看是不是返回true,如果true就是相同元素了。

1.2.1.1 LinkedHashSet:有序,是HashSet的子类

1.2.2 TreeSet有序,不重复,底层以二叉树实现。不同步

保证元素唯一性的实现原理:Comparable的compareTo()方法的返回值。

TreeSet的排序方法:

1.默认方法:自然排序,通过实现Comparable接口compareTo()方法来完成

2.比较器:如果添加的元素本身不具备可比较性或是不是自己想要的比较方式,将比较器作为参数传递进去。

通过实现Comparator接口的compare()方法,当主要条件相同时,比较次要条件

如果同时存在两种排序方法,采用第二种

2.Map

跟Collection的单一元素不同,Map存储的是键值对元素,他下面的子类有:

2.1 HashTable:有序,不可存Null的值和键,同步

Properties是HashTable的子类,他是集合和IO流的结合产物,可以保存在流中或者从流中加载

2.2 HashMap:底层以哈希表实现,可存Null值的键值对,无序(只能自定义通过key排序),高效, 不同步

2.3 TreeMap;底层以二叉树实现,可排序,不同步


---------------------- ASP.Net+Unity开发.Net培训、期待与您交流! ----------------------详细请查看:http://edu.csdn.net



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值