Map集合以及常用算法介绍

本文介绍了Map集合中的HashMap和TreeMap,包括它们的遍历方式和使用场景。HashMap的put方法允许编辑元素并返回替换前的值。对于TreeMap,文章通过实例展示了如何统计字符串中字符出现次数并排序。接着,文章探讨了冒泡排序和选择排序的原理及过程,以及二分查找法的搜索步骤。最后,讲解了如何使用阿里巴巴fastjson将json转化为map。
摘要由CSDN通过智能技术生成


Map集合的特点:
* 1、无序
* 2、以键值对方式进行数据存储
* 3、键唯一、值不唯一;当key相同value不同的时候,value会被覆盖

HashMap

HashMap的两种遍历方式:

		//1、获取所有的键,根据键取值
		Set<String> key = map.keySet();
		for (String s : key) {
   
			System.out.println(s+"="+map.get(s));
		}
	
		//2、获取所有的键值对
		Set<Entry<String, String>> entrySet = map.entrySet();
			for (Entry<String, String> entry : entrySet) {
   
			System.out.println(entry.getKey()+"="+entry.getValue());
		}  

结果都是一样的,根据键值对把map的数据打印出来
put的用法:
* 1、添加元素的同时,它可以编辑原有的元素
* 2、返回替换前key对应的value值

public static void main(String[] args) {
   
	Map<String, String> map=new HashMap<>();
	//用来添加元素
		map.put("aa", "111");
		map.put("bb", "222");
		map.put("cc", "333");
		map.put("dd", "444");
		map.put("ee", "555");
		
		Object a=map.put("aa", "***");
		System.out.println(a+":"+map);
}

输出结果为:a就是编辑前的value值,map集合中显示的就是编辑后aa的value值
在这里插入图片描述

TreeMap

利用TreeMap实现以下题目
题目一:统计字符串中出现的次数:asdasdfsdfwefhdkajsasjklasjdmasnd,并按照a(2)b(5)c(9)d(7)的格式以及出现的次数进行排序

思路: * 1、将字符串转为字符数组,将这个字符串中的字符当作map集合中的Key,将出现的次数作为value值

  • 2、当字符第一次出现的时候,那么用它在集合中进行寻找,返回值必然为null,之后将该字符对应的值改为1
  • 3、如果说该字符不是第一次出现,该字符对应的值就不为null,然后就+1;
  • 4、然后再按value也就是我们的出现次数进行排序
public class HashMapDemo {
   
	
	public static void main(String[] args) {
   
		String str="asdasdfsdfwefhdkajsasjklasjdmasnd";
		str=count(str);
		System.out.println(str);
		
	}

	public static String count(String str) {
   
		char[] charArray = str.toCharArray();
		Map<Character, Integer> map=new TreeMap<>();

		for (char c : charArray) {
   
			Integer value = map.get(c);
			if(value==null) {
   //如果是第一次,就赋值为1
				map.put(c, 1);
			}
			else {
   
				map.put(c, ++value);
			}
		}
	    List<Entry<Character, Integer>> list = new ArrayList<Entry<Character, Integer>>(map.
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

不愿秃头的阳某

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值