JAVA核心基础-集合(下)-Map集合与集合辅助类collections

JAVA核心基础-集合(上)-collection集合体系

一.Map集合

Map用于保存具有映射关系的数据,Map集合里保存着两组值,一组用于保存Map的key,另一组保存着Map的value。一个键(key)和它对应的值构成map集合中的一个元素。所有的key不能重复,没有顺序。
Map集合的作用:通过唯一的key找到对应的value,用这种对应关系方便查找。
在这里插入图片描述
常用方法:
1、添加:
1、put(K key, V value) :可以相同的key值,但是添加的value值会覆
盖前面的,返回值是前一个,如果没有就返回null
2、删除
1、remove():删除关联对象,指定key对象
2、clear():清空集合对象
3、获取
1、get(key); 可以用于判断键是否存在的情况。当指定的键不存在的时候,返
回的是null。
4、判断
1、boolean isEmpty() 长度为0返回true否则false
2、boolean containsKey(Object key) 判断集合中是否包含指定的key
3、boolean containsValue(Object value) 判断集合中是否包含指定的value
5、获取长度:
Int size():获取集合长度
Map集合与Set集合的关系: Map所有的key其实是一个Set,Map所有的value是某种可以存储重复数据的集合,而把key组成的Set中的元素和value组成的某种的集合中的元素一一对应起来后,就组成了一个Map。

1.HashMap

HashMap是Map接口的的一个实现类,是通过 数组+链表/红黑树 来实现的,数组长度会通过扩展因子来自动增加。可以存入null值
HashMap初始容量(默认为: 16)和扩展因子赋值 (默认值为: 0.75 )
HashMap的元素遍历:

  HashMap<Integer, String> hm = new HashMap<>();
		hm.put(1, "1001");
		hm.put(2, "1002");
		hm.put(3, "1003");
		hm.put(4, "1004");
		hm.put(5, "1005");
		System.out.println(hm);
        //对HashMap元素遍历:将HashMap集合元素放入set集合中,用set集合的迭代器进行遍历。
        Set<Entry<Integer, String>> entrySet = hm.entrySet();
		Iterator<Entry<Integer, String>> it = entrySet.iterator();
		while (it.hasNext()) {
			Entry<Integer, String> next = it.next();
			Integer key = next.getKey();
			String value = next.getValue();
			System.out.println(key + " = " + value);

2.HashMap和Hashtable实现类的区别以及与HashSet的关系

HashMap和Hashtable实现类区别:
1.Hashtable是线性安全的,HashMap是线性不安全的,所以后者效率更高。
2.Hashtable不允许使用null作为key和value,否则会引发异常,而HashMap可以;
HashMap和HashSet的关系:
1.与HashSet集合不能保证元素顺序一样,HashMap也不能保证键值对的顺序。HashMap判断两个key相等的标准也是:两个key通过equals方法比较返回true,两个key的hashCode值也相等。而判断value值相等的标准:只要两个对象通过equals方法比较返回true即可。
2.不能修改集合中的key,否则程序再也无法准确访问到Map中被修改过的key。

二.集合辅助类collections

Collections 是一个操作 Collection(Set、 List )和 Map 等集合的工具类
常用方法:
排序操作:
reverse(List): 反转 List 中元素的顺序

List<Integer> list = new ArrayList();

    list.add(2121);
    list.add(-1);
    list.add(21);
    list.add(0);
    list.add(45);
 //反转
    Collections.reverse(list);

sort(List): 根据元素的自然顺序对指定 List 集合元素按升序排序

List list = new ArrayList();

    list.add(2121);
    list.add(-1);
    list.add(21);
    list.add(0);
    list.add(45);
  //按升序排序
    Collections.sort(list);  //[-1, 0, 21, 45, 2121]

查找和替换:
Object max(Collection): 根据元素的自然顺序,返回给定集合中的最大元素
int frequency(Collection, Object): 返回指定集合中指定元素的出现次数
void copy(List dest,List src):将src中的内容复制到dest中
boolean replaceAll(List list,Object oldVal,Object newVal): 使用新值替换List 对象的所有旧值
在这里插入图片描述

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值