Java 用不重复的记录填充数组

标签 java arrays sorting

Scanner sc=new Scanner(System.in);
int i=0;
int nr = sc.nextInt();

int[] arr=new int[5];
while (i<arr.length || arr[i] < 11 ){
    System.out.println("Enter "+i+" index of array: ");
    int j = 0;
    if (arr[i]==arr[j]) {
        arr[i]=sc.nextInt();
        i++;
    }
}
System.out.println(Arrays.toString(arr));

如何才能只将那些不重复两次且该值不应该超过 11 的值插入到数组中,否则再次询问用户。请帮忙,卡住了!

最佳答案

public static void main(String... args) {
    Integer[] arr = new Integer[5];
    Scanner sc = new Scanner(System.in);
    for (int j = 0; j < arr.length;) {
        System.out.println("Enter a number less than 11.");
        Integer i = sc.nextInt();
        if (i < 11 && !Arrays.stream(arr).anyMatch(a -> a == i)) {
            arr[j] = i;
            j++;
        }
    }
    System.out.println("type 1 for ascending and 2 for descending order");
    int choice = sc.nextInt();
    if (choice == 1)
        Arrays.sort(arr);
    else if (choice == 2)
        Arrays.sort(arr, Collections.reverseOrder());
    System.out.println(Arrays.toString(arr));
}

这段代码确实有效,但是搜索现有元素很可能对于 5 个元素来说是一种过度杀伤力,但如果它扩大的话很有用。另请注意,此代码在 Java 7 中不起作用。如果您需要了解该代码的用途,请询问。

编辑: 更新代码以提供排序选择

关于Java 用不重复的记录填充数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45979568/

相关文章:

r - 如何在 R 中相对于中心按顺时针顺序对点进行排序?

python - Python中的JSON输出排序

java - 火力地堡 : Firestore : What is the equivalent of ChildEventListener found in Realtime Database

java - 正则表达式将所有格鲁吉亚符号替换为常规拉丁符号

php - 按颜色对 10,000 张图像进行排序

java - 使用 Java 8 流仅保留跨多个数组唯一的值

python - 如何以 pythonic 方式管理大量庞大的数组。

java - 简单参数的堆污染

java - 在非同步块(synchronized block)中等待和通知

javascript - 将数组从一行数组转换为多行数组