【问题标题】:compare tabular data of strings stored in arraylists and join them比较存储在数组列表中的字符串的表格数据并加入它们
【发布时间】:2016-12-12 14:37:43
【问题描述】:

我有两个字符串 A 和 B 的数组列表。 每个都有表格记录。

arraylist 中的每个条目看起来像这样。整行是一个条目。

文档:"a","b","c","d","e"

文档:"x","b","r","z","f"

现在,如果将每个逗号分隔的条目视为表中的一个字段。

现在我从这两个基于 field2 的数组列表(在第一行是 b)和字段 5 中创建了两个新的数组列表 1 所有匹配的记录和一个所有不匹配的记录。

我是 java 新手,想不出如何每次都拆分数据并进行比较。请帮忙。

更新:arrayList1,在arrayList2 中包含字符串。每个字符串看起来都像给定的示例。我必须将字符串拆分为记录。对于 field2 和 field5 我必须匹配两个数组列表。像 sql join 一样,我必须仅在 arrayList 中显示匹配的记录,而在另一个中显示不匹配的记录。在新数组中应该存在整个字符串。

我的数组列表包含 =[ (""b","c","d","e""),("z",c","v","b")...... ....] 现在如果我们拆分字符串,我们会得到字段,例如第一行 field1=b,field2=c 等等。两个数组列表是相似的。现在对于这两个字段 2 和字段 5 的数组列表我需要找出所有匹配和不匹配的记录。仅用于字段....而不是整个字符串。

【问题讨论】:

  • 从您的描述中不清楚您想要做什么。提供输入和预期输出。
  • 你能把你的源代码贴出来吗,现在我们很难理解你的查询
  • arrayList1,在 arrayList2 中包含字符串。每个字符串看起来像给定的示例。我必须将字符串拆分为记录。对于 field2 和 field5 我必须匹配两个数组列表。像 sql join 一样,我必须只在数组中显示匹配的记录,而在另一个数组中显示不匹配的记录。在新数组中应该存在整个字符串。
  • @DavidChoweller 请查看说明。
  • @SautripPaul,您没有给定输入的预期输出。

标签: java arraylist


【解决方案1】:

试试removeAll()andretainAll()


import java.util.ArrayList;
import java.util.Arrays;

public class NewClass {

    public static void main(String[] args) {
        ArrayList<String> list1 = new ArrayList<String>();
        ArrayList<String> list1_copy = new ArrayList<String>();
        ArrayList<String> list2 = new ArrayList<String>();

        String line1 = "this is a sample line for trial";
        String line2 = "this is another sample line for test";


        list1.addAll(Arrays.asList(line1.split(" ")));
        list2.addAll(Arrays.asList(line2.split(" ")));
        list1_copy = (ArrayList<String>) list1.clone();
        System.out.println("Original list1: "+list1);
        System.out.println("Original list2: "+list2);

        list1.removeAll(list2);
        System.out.println("Different items in lists: "+list1);

        list1_copy.retainAll(list2);
        System.out.println("Same items in lists: "+list2);

    }

}

【讨论】:

  • 我不需要检查整个字符串进行比较。我需要拆分字符串。比较逗号分隔的字段。分开后field2和field5需要匹配。
  • 我的数组列表包含 =[ (""b","c","d","e""),("z",c","v","b")。 .....................] 现在如果我们拆分字符串,我们会得到字段,例如第一行 field1=b,field2=c 等等。两个数组列表是类似。现在对于 field2 和 field5 这两个数组列表,我需要找出所有匹配和不匹配的记录。仅针对字段....而不是整个字符串。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2020-08-07
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-01-29
  • 2014-02-27
  • 1970-01-01
相关资源
最近更新 更多