如何从数组中获取唯一值

问题描述:

我有一个数组,我想从中删除重复项.

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);