首页 > 编程知识 正文

hashMap的getOrDefault()方法的使用

时间:2023-05-06 03:07:11 阅读:197128 作者:1467

文章目录 1.getOrDefault()2.利用练习题目一:给定一个字符串,找到它的第一个不重复的字符,并返回它的索引。如果不存在,则返回 -1。题目二:统计一个数组中各个字母出现的次数

1.getOrDefault() 方法描述getOrDefault(Object key, V defaultValue)返回该键对应的值,如果没有该键则返回默认值defaultValueMap<Character,Integer> map = new HashMap<Character,Integer>();map.put('a',1);Integer a = map.getOrDefault('a', 1);Integer d = map.getOrDefault('d', 100);System.out.println("键a的Value值为="+a);System.out.println("键d的Value值为= 因为键d不存在应该返回默认值"+d);

结果:

2.利用练习 题目一:给定一个字符串,找到它的第一个不重复的字符,并返回它的索引。如果不存在,则返回 -1。 public class Demo3 { public static void main(String[] args) { String str = "dddccdbbacdf"; int i = firstUniqChar(str); System.out.println(i); } public static int firstUniqChar(String s) { if(s == null || s.length == 0){ return -1; } HashMap<Character, Integer> count = new HashMap<Character, Integer>(); int n = s.length(); for (int i = 0; i < n; i++) { char c = s.charAt(i); count.put(c, count.getOrDefault(c, 0) + 1); } //并不是遍历map判断元素个数是不是一,而是遍历字符串判断元素个数是否为一 for (int i = 0; i < n; i++) { if (count.get(s.charAt(i)) == 1) return i; } return -1; }}

结果:

题目二:统计一个数组中各个字母出现的次数 public class Demo9 { public static void main(String[] args) { String str = "dfasasdfassfdsfdgrhtjh"; Map<Character, Integer> map = checkNumber(str); print(map); } //输出 private static void print(Map<Character, Integer> map) { Set<Character> characters = map.keySet(); for (Character character : characters) { System.out.print("字符:"+character+" "); System.out.println("出现的次数"+map.get(character)); } } private static Map<Character,Integer> checkNumber(String str) { HashMap<Character, Integer> map = new HashMap<>(); //字符串变成字符数组 char[] chars = str.toCharArray(); //遍历字符数组将其填入map for (int i = 0; i < chars.length; i++) { //已经有的元素,元素数量再加一。如果是第一次填入,元素个数加一。 map.put(chars[i],map.getOrDefault(chars[i],0)+1); } return map; }}

结果:

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。