java - 比较两个数组列表

标签 java comparison arraylist

我有两个数组列表:

ArrayList a1 = new ArrayList();
a1.add("5");
a1.add("10");
a1.add("20");
a1.add("50");
a1.add("100");
a1.add("500");
a1.add("1000");

ArrayList a2 = new ArrayList();
a2.add("50");
a2.add("500");
a2.add("1000");

如果 a2 存在于 a1 中,我如何比较这两个数组列表并添加到新的数组列表(a3)中,如果 a2 存在,则添加 1,如果不存在,则添加 0,这样数组列表 a3 的结果将在下面?

a3[0] = 0
a3[1] = 0
a3[2] = 0
a3[3] = 1
a3[4] = 0
a3[5] = 1
a3[6] = 1

提前致谢

最佳答案

首先,我建议您use generics .其次,a2 可以是 Set反而。第三,您可能希望将 String 更改为 Integer(因为它们都是整数)。

但对于您的示例,这是一种方法:

ArrayList<Integer> a3 = new ArrayList<Integer>();               
for (String a : a1)
    a3.add(a2.contains(a) ? 1 : 0);

完整示例(使用 HashSetInteger 类型):

public static void main(String... args) {
    List<Integer> a1 = Arrays.asList(5, 10, 20, 50, 100, 500, 1000);
    Set<Integer>  a2 = new HashSet<Integer>(Arrays.asList(50, 500, 1000));

    ArrayList<Integer> a3 = new ArrayList<Integer>();                

    for (Integer a : a1)
        a3.add(a2.contains(a) ? 1 : 0);

    System.out.println(a3);
}

输出:

[0, 0, 0, 1, 0, 1, 1]

关于java - 比较两个数组列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7173960/

相关文章:

java - 将 Jackson 与 Map<String, Serializable> 结合使用

java - Java 中的 RESTful Web 服务

java - MySQL SQL脚本中没有这样的文件或目录

java - 使用java函数将字符 "a"转换为数字0

perl - Perl中<=>(小于,等于,大于)的含义?

c# - 是否有 KeyValuePair<T, T> (即单个 hashmap 'cell' )类型的 Java 等价物?

java - 使循环仅运行一个 if 语句而不是多个 if 语句时出现问题

java - 如何存储数组列表?

python - 如何测试多个变量与单个值的相等性?

java - 合并两个具有重复项的 Java Arraylist