彩虹糖503 2021-09-08 17:33 采纳率: 66.7%
浏览 57
已结题

java中一个未知长度的list中存的元素全是String[] 如何才能找出所有String[]中都存在的值

java中一个未知长度的list中存的元素全是String[] 如何才能找出所有String[]中都存在的值

  • 写回答

5条回答 默认 最新

  • 得一以生 2021-09-08 18:02
    关注
    
    List<String[]> list = new ArrayList<>();
            list.add(new String[]{"1", "2"});
            list.add(new String[]{"2", "3"});
            List<List<String>> listAll = new ArrayList<>();
            list.forEach(item -> listAll.add(Arrays.asList(item)));
            //既然所有String[]都包含,那么就找一个size最小的遍历,减少对比次数
            List<String> minSize = listAll.get(0);
            int count = listAll.get(0).size();
            for (List<String> temp : listAll) {
                if (temp.size() < count) {
                    count = temp.size();
                    minSize = temp;
                }
            }
            //最终遍历,找出所有String[]都包含的字符串
            List<String> allHaveResult = new ArrayList<>();
            boolean flag = false;
            for (String s : minSize) {
                for (List<String> temp : listAll) {
                    if (!temp.contains(s)) {
                        flag = true;
                        break;
                    }
                }
                if (!flag) {
                    allHaveResult.add(s);
                }
                flag = false;
            }
            System.out.println(JSON.toJSONString(allHaveResult));
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(4条)

报告相同问题?

问题事件

  • 系统已结题 9月30日
  • 已采纳回答 9月22日
  • 创建了问题 9月8日