java小白Set HashSet Map HashMap

一、集合Set

概念:Set集合是一个存储不重复的、无序的数据的集合,它不像List一样,每个数据都有对应的下标,它也是继承Collecion接口的一个接口,拥有Collection接口的全部方法。

特点:1.Set集合中的数据是不重复的。

           2.Set集合中的数据是不重复的。

           3.Set集合中可以存放null,但是只能存一个。

HashSet类:本类是用于存储HashMap中的Key,然后再通过HashSet的迭代器来对HashMap来迭代遍历。

TreeSet 类:没看,有兴趣可以看一下。

二、集合Map

概念:前面讲的Collection接口是单列集合,而Map接口是双列集合,Map,,Key是键,不可以重复,value是值可以重复,每个key对应相应的值,key不可以重复,否则会被覆盖,但是value可以重复。

特点:1.Map可以根据key来提取对应的value

           2.Map键不可以重复,如果重复的话,值会被覆盖

           3.Map存放的是无序的数据。

           4.Map的初始容量是16,默认的加载因子是0.75.

HashMap类:本类是Map的实现类,可以实现Map的所有方法,是我们常用的类。HashMap底层是一个Entry[ ]数组,当存放数据时,会根据hash算法来计算数据的存放位置算法:hash(key)%n , n就是数组的长度,其实也就是集合的容量。当计算的位置没有数据的时候,会直接存放数据当计算的位置,有数据时,会发生hash冲突/hash碰撞,解决的办法就是采用链表的结构,在数组中指定位置处已有元素之后插入新的元素,也就是说数组中的元素都是最早加入的节点。

迭代方式:有两种

1.

Map<Integer,String> map = new HashMap<>();

map.put(1001,"大娃");//向集合中添加数据

map.put(1002,"二娃"); map.put(1003,"三娃");

map.put(1004,"四娃");

Set<Integer> keySet = map.keySet();//创建Set对象

Iterator<Integer> it = keySet.iterator();//先获取集合的迭代器对象

while(it.hasNext()){

Integer key = it.next();//拿到当前遍历到的key

String value = map.get(key);//通过刚刚拿到的key获取对应的value

System.out.println("{"+key+"="+value+"}");

}

2.

Map<Integer,String> map = new HashMap<>();

map.put(1001,"大娃");//向集合中添加数据

map.put(1002,"二娃"); map.put(1003,"三娃");

map.put(1004,"四娃");

Set<Map.Entry<Integer,String>> entrySet = map.entrySet();//创建Set对象

Iterator<Map.Entry<Integer,String>> it2 = entrySet.iterator();//获取迭代器

while (it2.hasNext()){

Map.Entry<Integer,String> entry = it2.next();//获取当前集合遍历到的entry对象

Integer key = entry.getKey();//获取当前entry中存着的key

String value = entry.getValue();//获取当前entry中存着的value

System.out.println("{"+key+"="+value+"}");

}

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值