我正在阅读java中的数组,我制作了一个代码来计算数组中所有数字的出现次数。
public class Example {
static int b[] = new int[13]; // I can not do static int b[] = new int[a.length] because a[] in not static array
static int count = 0;
public static void main(String[] args) {
int[] a = { 2, 3, 4, 3, 3, 5, 4, 10, 9, 1, 9, 11, 15 };
counting(a);
printCount();
}
private static void printCount() {
int k = 0;
for (int i = 0; i < b.length; i++) {
System.out.print("number" + " " + a[k] + " " + "is found" + " "); // here I get error in a[k] because it is not static , eclipse says : a cannot be resolved to a variable
System.out.println(b[i] + " " + "times");
k++;
}
System.out.println();
}
private static void counting(int[] a) {
for (int i = 0; i < a.length; i++) {
for (int k = 0; k < a.length; k++) {
if (a[i] == a[k]) {
b[i] = ++count;
}
}
count = 0;
}
}
}
我遇到了printCount()方法,我无法在方法中调用我的a []数组,因为main方法中的[]不是静态的。
我尝试在我的main方法中编写static int[] a = { 2, 3, 4, 3, 3, 5, 4, 10, 9, 1, 9, 11, 15 };
,但eclipse不接受。
如何使[]成为静态数组,以便可以在上面的Example类中的所有方法中使用?
谢谢
答案 0 :(得分:4)
public static void main(String[] args) {
int[] a = { 2, 3, 4, 3, 3, 5, 4, 10, 9, 1, 9, 11, 15 };
counting(a);
printCount(a);
}
在printCount()方法中传递数组。
答案 1 :(得分:2)
如果你不想让它移出主方法,为什么你想要一个[]是静态的?它可以在main()之外访问的唯一方法是它是否被传递。没办法像普通的静态变量一样调用Example.a []。在我看来,你需要在初始化之后获得[]的长度,然后在main方法中设置b []的界限。
答案 2 :(得分:2)
您可以将a数组作为static移动到类范围。然后,对于您的阵列练习,您可以轻松地更改阵列。
但是,正如其他人也提到的,我建议你学习scopes in Java。
function(response) { // Error callback
//alert('ERROR - RELOAD DATA '+response);
console.log('ERROR - RELOAD DATA '+response);
return setNewOrders();
}