如何从数组中获取唯一值

2022-09-02 02:21:15

我有一个数组,我想从中删除重复的项目。

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

但这并没有从数组中为我提供唯一的值。

我的阵列:- {英文, 法文, 日文, 俄文, 中文字幕,英文, 法文, 日文, 俄文, 中文字幕}

输出放 :- [日文、 俄文、 法文、 中文字幕], 中文字幕, [英文, 英文]


答案 1

你可以在java 7中的一行中做到这一点:

String[] unique = new HashSet<String>(Arrays.asList(array)).toArray(new String[0]);

在java 8中更短更简单:

String[] unique = Arrays.stream(array).distinct().toArray(String[]::new);

答案 2

HashSet将完成这项工作。

你可以试试这个:

List<String> newList = new ArrayList<String>(new HashSet<String>(oldList));