输入数组,没有没有数组列表的维度

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了输入数组,没有没有数组列表的维度相关的知识,希望对你有一定的参考价值。

我想创建一个程序,从用户读取int值,直到引入一个非int的值。然后我想知道有多少数字相等。我试过这段代码

import java.util.Scanner;

public class Equals {
    public static void main(String[] args){
        Scanner keyboard = new Scanner(System.in);
        Scanner input = keyboard;
        int index = 0;
        int equals = 0;
        while(keyboard.hasNextInt()){
            keyboard.nextInt();
            index++;
        }
        int[] equals = new int[index];
        for(int i = 0 ; i < index ; i++){
            int aux = input.nextInt();
            values[i] = aux;
            for(int b = 0 ; b < index ; b++){
                if(aux == values[b]){
                    equals++;
                }
            }
        }
        System.out.print(equals);
    }
}

此代码无法正常工作,因为键盘扫描程序只获取用户引入的值的数量,并且我将其用于数组大小,但我无法获得每个单独的值进行比较。我不能使用数组列表。

答案

如果你不能使用数组列表,你可以使用什么?你能用这个吗?

 int[] values = new int[0];

 while(keyboard.hasNextInt()){
        values  = Arrays.copyOf(values, values.length + 1);
        values[values.length-1] = keyboard.nextInt();
        index++;
   }

如果您不允许执行数组类,则可以像这样手动调整数组大小,并使用此函数代替Arrays.copyOf:

private int[] resize(int[]s, int capacity) {
    int[] copy = new int[capacity];
    for (int i = 0; i < s.length; i++) {
        copy[i] = s[i];
        s = copy;
    }
    return copy;
}

以上是关于输入数组,没有没有数组列表的维度的主要内容,如果未能解决你的问题,请参考以下文章

返回数组指针

如何使列表视图出现在片段中?

ValueError:检查输入时出错:预期 lstm_16_input 有 3 个维度,但得到的数组形状为 (836, 400, 3, 1)

使用列表中的随机元素创建 numpy 数组

python numpy.row_stack?想知道怎么修改

数组作业