集合的基础知识

这是从毕向东老师的视频课上总结的知识点。 大家如果感兴趣的话,可以到黑马程序员的官网下载老师的Java基础课。


我这个排版实在太乱了,也不知道怎么回事,Tab键不好使啊。建议大家看视频吧,讲的非常好。


 * Collection

 *    |--List:元素是有序的,元素可以重复。因为该集合体系有索引。

 *        |--ArrayList: 底层的数据结构使用的是数组结构。特点:查询速度很快,但是增删稍慢。线程不同步。

 *        ArrayList()构造一个初始容量为10的空列表。

 *        |--LinkedList:底层使用的是链表结构。特点:增删速度很快,查询稍慢。

 *        |--Vector:底层是数组数据结构。Java1.0开始;线程同步。特点:操作慢。被ArrayList替代了。

 * 

 *    |--Set:元素是无序(存入和取出的顺序不一定一致),元素不可以重复

 *        |--HashSet: 底层数据结构是哈希表。

 *        HashSet是如何保证元素唯一性的呢?

 *        是通过元素的两个方法,hashCode和equals来完成。

 *        如果元素的hashCode值相同,才会判断equals是否为true.

 *        如果元素的hashCode值不同,不会调用equals。

 *     注意:对于判断元素是否存在,以及删除等操作,依赖的是元素的hashcode和equals方法。 

 * 

 *  |--TreeSet: 底层数据结构是二叉树。可以对Set集合中的元素进行排序,按照自身的compareTo()的返回值排序。

 *         保证元素唯一性的依据:compareTo()方法return 0。返回0值时TreeSet认为两个元素相同,只存储一个。

 * 

 *         TreeSet排序的第一种方式:让元素自身具备比较性。元素需要实现Comparable接口,覆盖compareTo方法。

 *  这种方式也称为元素的自然顺序,或者叫做默认顺序。

 *         TreeSet排序的第二种方式:当元素自身不具备比较性时,或者具备的比较性不是所需要的,这时就需要让集合自身具备比较性。

 *  定义比较器,将比较器对象作为参数传递给TreeSet集合的构造函数。

 *  定义一个类,实现Comparator接口,覆盖compare方法。

 *     当两种排序都存在时,以比较器为主。

 * |--Map

 * |--Hashtable:底层是哈希表数据结构,不可以存入null键null值,该集合是线程同步的。JDK1.0

 * |--HashMap:底层是哈希表数据结构,允许使用null键null值,该集合是不同步的。JDK1.2

 * |--TreeMap:底层是二叉树数据结构。线程不同步。可以用于给map集合中的键进行排序。



/*

 * List:

 *   特有方法。凡是可以操作角标的方法都是该体系特有的方法。

 * 增

 * add(in);

 * 删

 * 

 * 改

 * 

 * 查

 * get(index);

 * subList(from, to);

 * listIterator();

 * 

 * List集合特有的迭代器。ListIterator 是Iterator的子接口。

 *  

 * 在迭代时,不可以通过集合对象的方法操作集合中的元素。

 * 因为会发生ConcurrentModificationException异常

 * 

 * 所以,在迭代器时,只能用迭代器的方法操作元素,可是Iterator方法有限,只能对元素进行判断、取出、删除的操作。

 * 如果想要其他的操作如添加、修改等,就需要使用其子接口,即ListIterator。

 * 该接口只能通过List集合的listIterator()获取

 * **/


/*

 * Map集合:

 * 该集合存储键值对,一对一对往里存,而且要保证建的唯一性。

 * 1. 添加

 * put(K key, V value);

 * putAll();

 * 2. 删除

 * clear();

 * remove(Object key);

 * 3. 判断

 * containsKey(Object key);

 * containsValue();

 * isEmpty();

 * 4. 获取

 * get(Object key);

 * size();

 * values();

 * entrySet();

 * keySet();

 * map集合的两种取出方式:

 * 1. keySet: 将map中所有的键存入到Set集合。因为set具备迭代器。

 * 所以可以迭代方式取出所有的键,再根据get方法。获取每一个键对应的值。

 *   Map集合的取出原理:将map集合转成set集合。再通过迭代器取出。

 * 

 * 2. Set<> entrySet:将map集合中的映射关系存入到set集合中。而这个关系的数据类型就是Map.Entry.




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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值