黑马程序员-集合(补充总结)

------Java培训、Android培训、iOS培训、.Net培训、期待与您交流! -------

①Set集合:
特点:
不能够存储重复元素
无序的集合(元素的存与取顺序不同)
线程不同步的集合,有安全隐患

Set集合的继承关系:
HashSet集合:
底层: 哈希表结构
无序
LinkedHashSet集合:
底层: 哈希表结构 + 链表结构
有序
它是HashSet集合的子类
TreeSet集合:
底层: 二叉树结构
无序的集合(元素的存与取顺序不同)
有序(元素按照自然排序接口 或者 比较器接口来排序)  



HashSet:
如何保证元素的唯一性?
重写hashCode()方法 与 equals() 方法
HashSet集合对象 底层是通过 HashMap集合来创建的


TreeSet:
如何保证元素的唯一性与排序的?
方式1: 通过实现自然排序接口 Comparable [ compareTo(Object obj ) ]
方式2: 通过实现比较器接口   Comparator [ compare( Object o1, Object o2 ) ]

返回值:
等于0 : 代表 两个对象相同, 新元素不存储到集合
大于0:
小于0:
代表 两个对象不同, 新元素存储到集合, 同时排序
可以按照指定的规则进行排序 

注意: API中提供的类, 通常都实现了 Comparable接口,而我们自己创建的类没有实现,所以,自己的类 需要实现接口



②java中参数的传递:
如果传递的是基本数据类型(包含String类型):
形参的改变,对实参 没有影响
如果传递的是引用数据类型 
形参的改变, 对实参 有影响

③Map: 双列集合
特点:
键是唯一的
值可以重复的


Map集合体系关系
Map:
|- HashMap
|- TreeMap

Map集合中的方法:
添加功能:
V put(K key, V value)
删除功能:
void clear()
V remove(Object key) 
判断功能:
boolean containsKey(Object key) 
boolean containsValue(Object value)
boolean isEmpty() 
获取功能:
Set<Map.Entry<K,V>> entrySet()
V get(Object key) 
Set<K> keySet()
Collection<V> values() 
长度功能:
int size()


HashMap:
特点:
底层:哈希表结构
如何保证HashMap集合中key是唯一的???
重写key 所对应的类中的 hashCode() 与 equals() 方法
注意: 如果 key 是API中提供的类,不需要自己重写,因为API已经重写好了, 而自己定义的类,必须要重写


TreeMap:
特点:
底层: 二叉树结构
如何保证TreeMao集合中的key 是唯一和排序的??
有两种方式:
方式1:  实现 自然排序接口  
Comparable {  compareTo(Object o) }
方式2:  实现 比较器接口
Comparator { compare(Object o1, Object o2) }

注意: 具体如何比较的代码 需要自己来实现


④Map集合遍历的两种方式:
方式1: 键 找 值
a: 获取集合中所有的key
b: 获取到每一个key
c: 通过当前的key, 获取到对应的值 value

方式2: 键值对, 找键,找值
a: 获取集合中所有的键值对对象 
b: 获取到每一个键值对对象
c: 通过键值对对象, 找键,找值

⑤HashMap集合与 Hashtable集合的区别?
Hashtable: 
是一个Map集合
它是一个线程同步的集合, 安全
键不能为null , 值不能为null
HashMap:
它是一个线程不同步的集合
键可以为null, 值可以为null


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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值