java - 如何获取任意整数数组并返回具有相同整数但不重复的数组

标签 java arrays arraylist methods return-value

我需要编写一个独特的java方法,它接受任意整数数组并返回具有相同整数但不重复的数组。我是否必须在唯一方法内创建数组?我是否还必须声明 arr1、arr2 和 arr3?

public static int[] unique(){
        int [] arr1;
        int [] arr2;
        int [] arr3;

     for(int i= 0; i < arr1.length; i++) {

         }

    } 




    public static void main(String[] args) {
        int[] arr1 = {34, 34, 10, 50, 56, 34, 67, 34};
        int[] arr2 = {23, 100, 5, 56, 67, 10, 10, 10, 34, 67};
        int[] arr3 = {25, 25, 25, 25};

        System.out.println(Arrays.toString(unique(arr1)));
        1
        System.out.println(unique(arr1).length);
        System.out.println(Arrays.toString(unique(arr2)));
        System.out.println(unique(arr2).length);
        System.out.println(Arrays.toString(unique(arr3)));
        System.out.println(unique(arr3).length);
    }

}

<小时/>

最佳答案

首先,将所有值放入 Set<Integer> ,默认情况下不允许重复值,然后添加 Set<Integer> 中的所有值到int[]并返回。

public static int[] unique(int[] values) {
   Set<Integer> uniqueValuesSet = new HashSet<>();
   for(Integer value : values) {
      uniqueValuesSet.add(value);
   }
   int i = 0;
   int[] uniqueValuesArray = new int[uniqueValuesSet.size()];
   for(Integer value : uniqueValuesSet) {
      uniqueValuesArray[i++] = value;
   }
   return uniqueValuesArray;
}

关于java - 如何获取任意整数数组并返回具有相同整数但不重复的数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55885956/

相关文章:

java - 如何存储 Java 类型,只允许某些特定类型?

arrays - 查找在线性时间内出现超过 n/4 次的所有元素

c++ - 在 CUDA __constant__ 内存和多 GPU 上?

java - 如何创建一个新变量来存储在 ArrayList 中?

java - 在数组列表中按标题显示所有 DVD 对象时遇到问题

java - Mockito When().thenReturn 返回一个迭代器

java - 如何访问该数组的 itemPrice 部分?

java - 如何从 Cygwin bash shell 启动在 Eclipse 中开发的 java CLI 程序?

javascript - 如何在javascript中找到两个不不同数组的差异?我使用了下划线,但我对普通 JS 持开放态度

java - 需要数组,但找到了 List<List<Integer>>