簡體   English   中英

Java創建直方圖方法有人可以幫助我理解這段代碼嗎?

[英]Java creating histogram method can someone help me to understand this code?

`公共類庫{

public static int[] histogram(int a[],int M) {
    int[] newArr = new int[M];
    
    //Fill the new array
    try {
    if(a.length<M)
        System.out.println("Array lenght should be "
                + "bigger than the number");
    else
        
        for(int i = 0; i < a.length; i++){
            int count = a[i];
            
            newArr[count] ++;
        }
    
    }
    catch (Exception e) {
        // TODO: handle exception
        System.out.println(e.getMessage());
    }
    
    //return the array
    return newArr;
}

public void printArray(int s[]) {
    int position = 0;
    for (int i = 0; i < s.length; i++) {
        System.out.print(position+" ");
        position++;
    }
    System.out.println();
    
    for (int i = 0; i < s.length; i++) {
        System.out.print(s[i]+" ");
    }
}



public static void main(String[] args) {
    
    Library l1 = new Library();
    
    int J = 5;
    int[] w = {1,2,0,1,2,3};
    
    l1.printArray(histogram(w,J));
    
}

` 我寫了這個以及我從谷歌和其他來源查看的一些部分,但我無法理解 public static int[] histogram 中的 else 部分

`否則

        for(int i = 0; i < a.length; i++){
            int count = a[i];
            
            newArr[count] ++;
        }

` 這個 newArr[count] ++ 是怎么做的; 作品有人可以向我解釋,請

` 這個 newArr[count] ++ 是怎么做的; 作品有人可以向我解釋,請

這條線上正在發生兩件事情。

  1. 我們從newArr數組中獲取對位置count的引用。
  2. 我們將其增加 1。

因此,如果您有數組newArr = [1,2,3]調用newArr[0]++將導致您具有以下newArr狀態為[2,2,3] newArr [2,2,3]

如果仍有不清楚的地方,請對此答案發表評論。

暫無
暫無

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

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