String [] TxtStr = new String[] {"bob","alan", "sam"};
List<String> stringList = new ArrayList<String>(Arrays.asList(TxtStr));
String [] TxtStr2 = new String[] {"bob","alan"};
List<String> stringList2 = new ArrayList<String>(Arrays.asList(TxtStr));
stringList.removeAll(stringList2);
String[] bTxtStr = stringList.toArray(new String[stringList.size()]);
String output = "nnn";
for (int x=0; x<bTxtStr.length; x++){
output +=bTxtStr[x];
}
目前,这只是我正在做的一个安卓项目的一小部分,我必须比较2个String[]的内容。
我已经有了相当多的问题,所以我从一个简单的例子开始,2个String[]分别有2个和3个元素。在初始化String[]之后,我将它们转换为ArrayLists并执行removeAll函数,理想情况下,该函数应该从第一个列表中删除元素"bob“和"alan”,并最终从输出中删除。
顺便说一句,使用remove to stringList.remove("bob")可以从ArrayList中删除特定的字符串。只是想知道我能做些什么来确保stringList.removeAll(....)很管用。
提前感谢您的帮助。
发布于 2017-06-14 14:18:22
你有个bug:
List<String> stringList2 = new ArrayList<String>(Arrays.asList(TxtStr));
您应该使用TxtStr2
List<String> stringList2 = new ArrayList<String>(Arrays.asList(TxtStr2));
发布于 2017-06-14 14:33:06
ArrayList的
List<String> stringList = Arrays.asList("bob","alan", "sam");
List<String> stringList2 = Arrays.asList("bob","alan");
String mergedString = stringList.stream().filter(string ->!stringList2.contains(string)).collect(Collectors.joining(","));
System.out.println("Merged String: " + mergedString);
发布于 2017-06-14 14:19:11
您可能最终会删除所有内容,因为您的列表创建基于相同的数组。变化
List<String> stringList2 = new ArrayList<String>(Arrays.asList(TxtStr);
至
List<String> stringList2 = new ArrayList<String>(Arrays.asList(TxtStr2);
https://stackoverflow.com/questions/44536869
复制相似问题