如何从数组中获取唯一值
问题描述:
我有一个数组,我想从中删除重复项.
I have an Array from which i want to remove Duplicate items.
for(int data1=startpos;data1<=lastrow;data1++) {
String movie_soundtrk=cells.getCell(data1,Mmovie_sndtrk_cl).getValue().toString();
al.add(movie_soundtrk);
}
String commaSeparated=al.toString();
String [] items = commaSeparated.split(",");
String[] trimmedArray = new String[items.length];
for (int i = 0; i < items.length; i++) {
trimmedArray[i] = items[i].trim();
}
Set<String> set = new HashSet<String>();
Collections.addAll(set, trimmedArray);
System.out.println(set);
但这并没有给我来自数组的唯一值.
But this is not giving me unique Values from Array.
我的阵列:- {英文、法文、日文、俄文、中文字幕,英文、法文、日文、俄文、中文字幕}
输出:- [日文、俄文、法文、中文字幕]、中文字幕、[英文、英文]
Out Put :- [Japanese, Russian, French, Chinese Subtitles], Chinese Subtitles, [English, English]
答
Java 7 中一行就可以搞定:
You can do it in one line in java 7:
String[] unique = new HashSet<String>(Arrays.asList(array)).toArray(new String[0]);
在 Java 8 中更短更简单:
and shorter and simpler in java 8:
String[] unique = Arrays.stream(array).distinct().toArray(String[]::new);