求两个集合中,相同的键的值,值中的元素不能重复

川长思鸟来 2022-05-27 03:23 183阅读 0赞

// 求两个集合中,相同的键的值,值中的元素不能重复:
// 例如:
// key1:”abc” value1:”123”
// key2:”abc” value2:”234”
// 输出:1234

// 思路,找出两个集合中相同的键,将对应的值拼接、去重

  1. public static void test(String[] args) {
  2. Map<String, String> map1 = new HashMap<String, String>();
  3. Map<String, String> map2 = new HashMap<String, String>();
  4. Set<String> set = new HashSet<String>();
  5. StringBuilder sb = new StringBuilder();
  6. List list = new ArrayList();
  7. map1.put("ASDF", "9527");
  8. map1.put("sdfd", "123");
  9. map1.put("xxxx", "456");
  10. map1.put("ASccDF", "789");
  11. map2.put("ASDF", "00");
  12. map2.put("sdfd", "456");
  13. map2.put("asdv", "789");
  14. Set<String> set1 = map1.keySet();
  15. Iterator<String> iterator = set1.iterator();
  16. while (iterator.hasNext()) {
  17. String key = iterator.next();
  18. if (map2.containsKey(key)) { // 找出两个集合中相同的键
  19. char[] ch = map1.get(key).concat(map2.get(key)).toCharArray(); // 将结果拼接
  20. for (int i = 0; i < ch.length; i++) { // 去重
  21. if (!list.contains(ch[i])) {
  22. list.add(ch[i]);
  23. sb.append(ch[i]);
  24. }
  25. }
  26. System.out.println("相同的键为:" + key + "去重后的结果为" + sb.toString());
  27. sb.setLength(0); // 每次得到一个不重复的值后将stringBuilder和list中的数据清空
  28. list.clear();
  29. }
  30. }
  31. }

发表评论

表情:
评论列表 (有 0 条评论,183人围观)

还没有评论,来说两句吧...

相关阅读