Java ANDROID:删除重复的字符串
我无法完全删除Java ANDROID:删除重复的字符串,java,android,arrays,arraylist,Java,Android,Arrays,Arraylist,我无法完全删除列表中的重复字符串 String[]myno1=新字符串[]{“01”、“02”、“03”、“04”、“05”、“06”, "07", "08", "09", "10", "11", "12", "13", "14", "15"}; 字符串[]myno=新字符串[]{“01”、“03”、“15”}; List stringList=newarraylist(Arrays.asList(myno)); List stringList1=新的ArrayList(Arrays.asLis
列表中的重复字符串
String[]myno1=新字符串[]{“01”、“02”、“03”、“04”、“05”、“06”,
"07", "08", "09", "10", "11", "12", "13", "14", "15"};
字符串[]myno=新字符串[]{“01”、“03”、“15”};
List stringList=newarraylist(Arrays.asList(myno));
List stringList1=新的ArrayList(Arrays.asList(myno1));
stringList.addAll(stringList1);
Set Set=新哈希集(stringList);
stringList.clear();
stringList.addAll(集合);
System.out.println(“==s:+stringList”);
但我明白了:
==s:[15,13,14,11,12,08,09,04,05,06,24,07,01,02,03,10]
我希望结果是这样的:
==s:[13,14,11,12,08,09,04,05,06,24,07,02,10]
因为您必须从另一个列表中删除这些项目HashSet()
用于从同一数组列表中删除重复项。e、 g如果列表包含15次两次和3次两次,则它将在列表中保留一次
这是密码
foreach(String str : stringList){
stringList1.remove(str);
}
拿它来说:
String[]myno1=新字符串[]{“01”、“02”、“03”、“04”、“05”、“06”、“07”,
"08", "09", "10", "11", "12", "13", "14", "15"};
字符串[]myno2=新字符串[]{“01”、“03”、“15”};
//使用LinkedHashSet保留顺序
Set set1=newlinkedhashset(Arrays.asList(myno1));
Set set2=newlinkedhashset(Arrays.asList(myno2));
//查找重复项
Set intersection=new LinkedHashSet();
交叉点。添加所有(set1);
交叉口。保留(set2);
//从两个集合中删除重复项
设置结果=新建LinkedHashSet();
结果:addAll(set1);
结果:addAll(set2);
结果:移除所有(交叉点);
System.out.println(“结果:+Result”);
如果使用Java 8或+,则可以使用:
String[] myno1 = new String[] { "01", "02", "03", "04", "05", "06", "07", "08", "09", "10", "11", "12", "13", "14", "15" };
String[] myno = new String[] { "01", "03", "15" };
List<String> stringList = new ArrayList<>(Arrays.asList(myno));
List<String> stringList1 = new ArrayList<>(Arrays.asList(myno1));
stringList.addAll(stringList1);
List<String> newList = stringList.stream()
.filter(string -> Collections.frequency(stringList, string) == 1)
.collect(Collectors.toList());
System.out.println("=== s:" + newList);
你能澄清一下你到底想做什么吗?你想创建一个组合了“myno”和“myno1”的列表,使其包含除两个列表中包含的项以外的所有内容(即xor操作)吗?这不是他想要的。我知道了!非常感谢~:)我明白了!非常感谢~:)
Result: [02, 04, 05, 06, 07, 08, 09, 10, 11, 12, 13, 14]
String[] myno1 = new String[] { "01", "02", "03", "04", "05", "06", "07", "08", "09", "10", "11", "12", "13", "14", "15" };
String[] myno = new String[] { "01", "03", "15" };
List<String> stringList = new ArrayList<>(Arrays.asList(myno));
List<String> stringList1 = new ArrayList<>(Arrays.asList(myno1));
stringList.addAll(stringList1);
List<String> newList = stringList.stream()
.filter(string -> Collections.frequency(stringList, string) == 1)
.collect(Collectors.toList());
System.out.println("=== s:" + newList);
=== s:[02, 04, 05, 06, 07, 08, 09, 10, 11, 12, 13, 14]