如何从Array获取唯一值

时间:2015-09-30 23:35:08

标签: arrays

我还在学习Array,但我想学习如何做到这一点。 我正在寻找只显示数组列表中唯一值的代码,即“Tom”“Mike”“First”

String[] name={
              "Tom","Mike","First","Mike","Tom"
              };
for (int i=0;i<name.length;i++){

}

我知道我们需要一个循环来从0开始检索索引。先谢谢你。

2 个答案:

答案 0 :(得分:0)

在我看来,最简单的方法是:

Set<String> uniqueNames = new HashSet<>(Arrays.asList(name));    
for (String uniqueName : uniqueNames) {
   System.out.println(uniqueName);
}

如果你真的想要遍历原始数组,你可以记住你已经显示过的名字(不过我会建议第一个例子):

Set<String> usedNames = new HashSet<>();
for (String aName : name) {
   if (!usedNames.contains(aName)) {
      System.out.println(aName);
      usedNames.add(aName);
   }
}

答案 1 :(得分:0)

不是一个完整的答案,因为它听起来像家庭作业,但如果您首先对输入数组进行排序,则可以循环它并将任何与其前一个元素不同的元素添加到输出数组中。排序数组中的任何相同元素都是连续的。但是,排序将花费O(n log n)时间,这比哈希表的时间复杂度更差。