我们假设我们有一个像这样的字符串数组:
{abc,abc,abc,def,def,ghi}
有没有办法让String数组只包含一次这种可能性?
e.g. {abc,def,ghi}
我正在考虑迭代数组,事先排序,并检查前面的元素是否等于下一个元素。如果没有将其添加到列表中,并在必要时稍后将其转换为数组。
但是有更简单的解决方案吗?
顺便说一句,因为我是为android编程的,所以我不能使用Java 8的任何功能。
答案 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
会保留元素首次出现在数组中的顺序。