java 删除hashmap相同values

方法一使用借助两个hashset或两个arrylist,或者组合
arrayList1 存放第一次出现的value,arrayList1 存放第二次出现的value。hashset 可以加入value不会重复。赋值一份map1做循环,map判断一致的value进行删除。

package zh.codegym.task.task08.task0817;

import java.util.ArrayList;
import java.util.HashMap;
import java.util.HashSet;
import java.util.Map;

/* 
我们不需要重复的内容
*/

public class Solution {
    public static HashMap<String, String> createMap() {
        //在此编写你的代码
        HashMap<String, String> map = new HashMap<>();
        for (int i = 0; i < 10; i++) {
            map.put("sky"+i,"cxl");
        }
        return map;

    }

    public static void removeFirstNameDuplicates(Map<String, String> map) {
        //在此编写你的代码
        HashMap<String, String> map1 = new HashMap<>(map);
        ArrayList<String> arrayList1 = new ArrayList<>();
        HashSet<String> arrayList2 = new HashSet<>();
        for (Map.Entry<String,String> pair:map1.entrySet()
             ) {
            String value = pair.getValue();
            if (arrayList1.contains(value)){
                arrayList2.add(value);
            }
            else {
                arrayList1.add(value);
            }

        }
       for (Map.Entry<String,String> pair:map1.entrySet()
            ) {
            String value = pair.getValue();
          if (arrayList2.contains(value)){
               map.remove(pair.getKey());
           }
      }



    }

    public static void removeItemFromMapByValue(Map<String, String> map, String value) {
        HashMap<String, String> copy = new HashMap<String, String>(map);
        for (Map.Entry<String, String> pair : copy.entrySet()) {
            if (pair.getValue().equals(value)) {
                map.remove(pair.getKey());
            }
        }
    }

    public static void main(String[] args) {

    }
}

方法二删除,调用removeItemFromMapByValue 方法进行删除

package zh.codegym.task.task08.task0817;

import java.util.ArrayList;
import java.util.HashMap;
import java.util.HashSet;
import java.util.Map;

/* 
我们不需要重复的内容
*/

public class Solution {
    public static HashMap<String, String> createMap() {
        //在此编写你的代码
        HashMap<String, String> map = new HashMap<>();
        for (int i = 0; i < 10; i++) {
            map.put("sky"+i,"cxl");
        }
        return map;

    }

    public static void removeFirstNameDuplicates(Map<String, String> map) {
        //在此编写你的代码
        HashMap<String, String> map1 = new HashMap<>(map);
        ArrayList<String> arrayList1 = new ArrayList<>();
        HashSet<String> arrayList2 = new HashSet<>();
        for (Map.Entry<String,String> pair:map1.entrySet()
             ) {
            String value = pair.getValue();
            if (arrayList1.contains(value)){
                arrayList2.add(value);
            }
            else {
                arrayList1.add(value);
            }

        }
        for (String a:arrayList2
             ) {
            removeItemFromMapByValue(map,a);
        }

    }

    public static void removeItemFromMapByValue(Map<String, String> map, String value) {
        HashMap<String, String> copy = new HashMap<String, String>(map);
        for (Map.Entry<String, String> pair : copy.entrySet()) {
            if (pair.getValue().equals(value)) {
                map.remove(pair.getKey());
            }
        }
    }

    public static void main(String[] args) {

    }
}

hashmap使用
hashMap() 检查 hashMap 中是否存在指定的 key 对应的映射关系。
containsValue() 检查 hashMap 中是否存在指定的 value 对应的映射关系。

  String city=reader.readLine();
  if (map.containsKey(city)) {
      String familyName =map.get(city);
      System.out.println(familyName);
  }
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

金融小白数据分析之路

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

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

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

打赏作者

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

抵扣说明:

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

余额充值