我有两个字符串A和B的数组列表。 每个都有表格记录。
arraylist中的每个条目都是这样的。整行是一个条目。
文件:“a”,“b”,“c”,“d”,“e”
文件:“x”,“b”,“r”,“z”,“f”
现在,如果将每个逗号分隔的条目视为表格中的字段。
现在我来自这两个基于field2的arraylists(在第一行中是b)和第5个字段,我有两个创建两个新的arraylists 1所有匹配的记录和所有不匹配的记录之一。
我是java的新手,想不出每次如何分割数据并比较两者的方法。请帮忙。
UPDATE:arrayList2中的arrayList1包含字符串。每个字符串看起来像给定的示例。我必须将字符串拆分为记录。对于field2和field5,我必须匹配两个arraylist。像sql join一样,我必须只在arrayList中显示匹配的记录,而在另一个中不匹配。在新数组中,整个字符串应该存在。
我的arraylists包含= [(“”b“,”c“,”d“,”e“”),(“z”,c“,”v“,”b“)...... ................]现在如果我们分割字符串,我们得到的字段如第一行field1 = b,field2 = c等等。两个arraylists是相似的。现在为对于field2和field5这两个arraylists我需要找出匹配和不匹配的所有记录。仅适用于字段....不适用于整个字符串。
答案 0 :(得分:0)
尝试removeAll()
和retainAll()
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);
}
}