簡體   English   中英

如何找到 value = 0 的數組索引? Java

[英]How to find indexes of array with value = 0? Java

有沒有辦法在我的數組中找到 0 的索引?

我是新手,所以不太了解。

    Scanner scanner = new Scanner(System.in);
            System.out.println("Enter Array Size - ");
            int arraySize = scanner.nextInt();
    
            int[] array = new int[arraySize];
            int a = -1;
            for (int i = 0; i < arraySize; i++) {
                array[i] = a + (int) (Math.random() * 10);
            }
    
int numberOfZeros = 0;
        for (int i = 0; i < arraySize; i++) {
            if (array[i] == 0) {
                numberOfZeros++;
            }
        }
        if (numberOfZeros == 0) {
            System.out.print("No Zero's in Array!");
        } else if (numberOfZeros > 0) {
            System.out.print("Number of Zero's in Array - " + numberOfZeros);
        }

只需打印(或做任何你需要做的事情) index i 你已經找到了零:

for (int i = 0; i < arraySize; i++) {
    if (array[i] == 0) {
        numberOfZeros++;
        System.out.print("The value zero is at index: " + i);
    }
}

您可以解析數組,每次遇到零時,您都可以存儲索引:

        Scanner scanner = new Scanner(System.in);
        System.out.println("Enter Array Size - ");
        int arraySize = scanner.nextInt();

        int[] array = new int[arraySize];
        int a = -1;
        for (int i = 0; i < arraySize; i++) {
            array[i] = a + (int) (Math.random() * 10);
        }
        
        for(int i=0;i<arraySize;i++) {
           if ( array[i] == 0 ) {
               System.out.println(" There is a zero on the index "+i );
           }
        }

您可以使用 ArrayList 跟蹤索引並在找到零時打印它

    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        System.out.println("Enter Array Size - ");
        int arraySize = scanner.nextInt();

        int[] array = new int[arraySize];
        int a = -1;
        int numberOfZeros = 0;
        List<Integer> indexes = new ArrayList<>();

        for (int i = 0; i < arraySize; i++) {
            array[i] = a + (int) (Math.random() * 10);
            if (array[i] == 0) {
                numberOfZeros++;
                indexes.add(i);
            }
        }

        if (numberOfZeros == 0) {
            System.out.print("No Zero's in Array!");
        } else if (numberOfZeros > 0) {
            System.out.print("Number of Zero's in Array - " + numberOfZeros + " , in positions: " + indexes);
        }
        scanner.close();
    }

只要您已經循環遍歷數組並計算它們,只需將它們添加到List<Integer>以供將來參考。

但是,如果您需要在與其他代碼隔離的情況下找到它們,您可以這樣做。

int[] vals = { 1,2, 0,20,33,2, 0, 99,9,10,0,4};
int[] zeroIndices = IntStream.range(0,vals.length)
          .filter(i->vals[i] == 0)
          .toArray();

System.out.println(zeroIndices.length + " zeroes found!");
System.out.println(Arrays.toString(zeroIndices));

印刷

3 zeroes found!
[2, 6, 10]

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM