Java参数

时间:2017-04-16 18:47:55

标签: java android arrays string

我们假设我们有一个像这样的字符串数组:

{abc,abc,abc,def,def,ghi}

有没有办法让String数组只包含一次这种可能性?

 e.g. {abc,def,ghi}

我正在考虑迭代数组,事先排序,并检查前面的元素是否等于下一个元素。如果没有将其添加到列表中,并在必要时稍后将其转换为数组。

但是有更简单的解决方案吗?

顺便说一句,因为我是为android编程的,所以我不能使用Java 8的任何功能。

2 个答案:

答案 0 :(得分:2)

确定:迭代数组并将值推送到Set中。

使用LinkedHashSet时,您甚至可以保留初始订单。

或者,不用手动循环:

Set<String> = new LinkedHashSet<>(Arrays.asList(yourArray)) ;

答案 1 :(得分:2)

只需将数组复制到Set

即可
Set<String> noDupes = new LinkedHashSet<>(Arrays.asList(yourArray));

根据定义,Set不包含重复项。您可以使用HashSet(或任何其他Set实施)而不是LinkedHashSet,但LinkedHashSet会保留元素首次出现在数组中的顺序。