Java 创建直方图方法 有人可以帮助我理解这段代码吗?
Java creating histogram method can someone help me to understand this code?
public class Library {
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));
}
}
我写了这个和我从 google 和其他来源看到的一些部分,但我无法理解 public static int[] histogram
中的其他部分
else
for(int i = 0; i < a.length; i++){
int count = a[i];
newArr[count] ++;
}
这个newArr[count]++是怎么算的;有人可以向我解释一下吗
` How does this newArr[count] ++; works can someone explain to me, please
这一行发生了两件事。
- 我们从
newArr
数组中获取对位置 count
中值的引用。
- 我们将它加 1。
因此,如果您有数组 newArr = [1,2,3]
,调用 newArr[0]++
将导致您的 newArr
状态为 [2,2,3]
。
如果仍有不清楚的地方,请对此答案发表评论。
public class Library {
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));
}
}
我写了这个和我从 google 和其他来源看到的一些部分,但我无法理解 public static int[] histogram
中的其他部分 else
for(int i = 0; i < a.length; i++){
int count = a[i];
newArr[count] ++;
}
这个newArr[count]++是怎么算的;有人可以向我解释一下吗
` How does this newArr[count] ++; works can someone explain to me, please
这一行发生了两件事。
- 我们从
newArr
数组中获取对位置count
中值的引用。 - 我们将它加 1。
因此,如果您有数组 newArr = [1,2,3]
,调用 newArr[0]++
将导致您的 newArr
状态为 [2,2,3]
。
如果仍有不清楚的地方,请对此答案发表评论。