如何将列表与其他列表的元素进行比较

时间:2018-08-08 21:44:41

标签: java

我有两个不同的清单。在第一个列表的内部有一个数组。 我需要创建一个新列表,将第二个列表的值与Array相比较 第一个清单。将其他元素保留在第一列表中。

示例:

List1:
      {
       name:"";
       fone:"";
       numbers:["1", "2", "3", "4", "5", "6"]
       }
numbers2:
      {
       1;
       4;
       6;
       }
ListResult =           {
       name:"";
       fone:"";
       numbers:["1", "4", "6"]
       }

3 个答案:

答案 0 :(得分:0)

正如Silvio所说,给定的数据看起来像JSON对象。 假设如果您是两个列表(与集合相同),则可以使用Java为集合提供的keepAll或removeAll。 请参阅:https://docs.oracle.com/javase/7/docs/api/java/util/Collection.html#removeAll(java.util.Collection)

答案 1 :(得分:0)

您可以尝试这个。

ListResult = list1.getNumbers().stream().filter(n-> number2.contains(Integer.parseInt(n))).collect(Collectors.toList());

我假设您的数字1和数字2之类的“数组”实际上是java列表。

答案 2 :(得分:0)

实际上,您的输入格式太混乱了,据我所知,这是我能做的最好的事情。

如果您想要一个自定义列表(例如JSON对象),则应该有一个这样的类

public class CustomList {
private String name;
private String fone; 
private ArrayList<String> numbers;
private ArrayList<Integer> numbers2;

public String toString(){
    String output = "";
    output = "{" +
            "\nname: " + this.name +
            "\nfone: " + this.fone + 
            "\nnumbers: " + numbers.toString() +
            "\n}";
    return output;
}

public String getName() {
    return name;
}
public void setName(String name) {
    this.name = name;
}
public String getFone() {
    return fone;
}
public void setFone(String fone) {
    this.fone = fone;
}
public ArrayList<String> getNumbers() {
    return numbers;
}
public void setNumbers(ArrayList<String> numbers) {
    this.numbers = numbers;
}
public ArrayList<Integer> getNumbers2() {
    return numbers2;
}
public void setNumbers2(ArrayList<Integer> numbers2) {
    this.numbers2 = numbers2;
}
}

public class ListAnalyzer {

    public static void main(String[] args) {
        CustomList myList = new CustomList();
        myList.setName("\"\"");
        myList.setFone("\"\"");
        myList.setNumbers(new ArrayList<String>());
        myList.getNumbers().add("1");
        myList.getNumbers().add("4");
        myList.getNumbers().add("6");
        System.out.println(myList.toString());
    }

}

输出

{
name: ""
fone: ""
numbers: [1, 4, 6]
}