黑马程序员_Java 集合笔记

------- android培训java培训、期待与您交流! ---------- 

以下仅为个人平时学习笔记,可能有有错误的地方,希望有看到者提出来,共同讨论,谢谢!

Collection:
  1.List:元素是有序的,元素可以重复。因为该集合体系有索引。
    a.ArrayList:底层的数据结构使用的是数组结构。查询速度快;增删慢。线程不同步。
    b.LinkedList:底层使用的是链表数据结构。查询速度慢,增删快。
    c.Vector(和ArrayList功能一样,被ArrayList替代了):底层也是数组数据结构。线程同步。


  2.Set:元素是无序的(存入合取出的顺序不一定是一致的),元素不可以重复。


    a.HashSet:底层结构是哈希表。线程是同步的。
**HashSet是如何保证元素唯一性的呢?
  -->是通过元素的两个方法,hashCode和equals来完成的。如果元素的hashcode值相同,才会判断equals是否为true;如果元素的hashCode值不同,则不会调用equals。


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


    b.TreeSet:可以对Set集合中的元素进行排序。底层数据结构是二叉树。根据compareTo方法确定排序与重复。


****TreeSet排序的第一种方式:让元素自身具备比较性。元素需要实现Comparable接口,覆盖compareTo方法。这种方式也称为元素的自然顺序,或者叫做默认顺序。

****TreeSet排序的第二种方式:当元素自身不具备比较性时,或者具备的比较性不是所需要的。这时就需要集合自身具备比较性。在集合初始化时,就有了比较方式。(定义了比较器,将比较器对象作为参数传递给TreeSet集合的构造函数。)

3.Map

Map也属于集合系统,但和Collection接口不同。Map是key对value的映射集合,其中key列就是一个集合。key不能重复,但是value可以重复。HashMap、TreeMap和Hashtable是三个主要的实现类。
  |--HashTable:底层是哈希表结构,不可以存入null键null值.线程同步的.
  |--HashMap:底层是哈希表结构,可以存入null键null值.不是线程同步的.(无序)
  |--TreeMap:底层是二叉树结构.线程不同步,可以用于给map集合中的键进行排序.


1.put: 返回该键原来的值,若没有,返回null。
2.keyset: 将map中所有的键存入到Set集合。因为set具备迭代器。所以可以以迭代方式取出所有的键,再根据get方法,获取每一个键对应的值。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值