如何比较2个数组列表并返回重复的单词

时间:2019-01-21 21:27:18

标签: java arrays arraylist

好的,所以我正在使用一个代码来比较两个单独的数组列表,并返回重复的单词,例如,如果input1 =“ fun”,“ code”并且input2具有“ fun,java”。输出应该很有趣,但是我不确定如何准确地解决这个问题

我已经尝试过将forloop放在一起,但是它们似乎很不熟练,并且在比较数组列表时包含很多错误

    Scanner UI = new Scanner(System.in);
    ArrayList<String> input1 = new ArrayList<String>();
    ArrayList<String> input2 = new ArrayList<String>();
    ArrayList<String> result = new ArrayList<String>();

3 个答案:

答案 0 :(得分:0)

这应该有效

Set<String> dupes = new HashSet<>();
search: for (String in : list1)
    for (String in2 : list2)
        if (in.equals(in2)) {
            dupes.add(in);
            continue search;
        }

答案 1 :(得分:0)

您可以简单地使用connection.setRequestMethod("GET"); connection.setRequestProperty("Content-Type", "text/html; charset=utf-8"); 来获取两个 list 的共同元素:

int statusCode = connection.getResponseCode();

输出:

retainAll

答案 2 :(得分:0)

如果仅需要两个arraylist中的公共元素,并且要执行using for loop,则对input1input的数组之一进行迭代

ArrayList<String> input1 = new ArrayList<String>();
ArrayList<String> input2 = new ArrayList<String>();
ArrayList<String> result = new ArrayList<String>();

添加input2中包含的所有元素,或者您可以使用@Null简单地遵循retainAll方法

 for(String str : input1){

   if(input2.contains(str))){
     result.add(str);
     }
  }

使用Java-8

List<String> result = input1.stream().filter(e->input2.contains(e))
                      .collect(Collectors.toList());