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));本回答被题主选为最佳回答 , 对您是否有帮助呢?评论 打赏 举报解决 1无用