我想运行一个返回array
的方法。代码如下:
public static int[] getArray() {
int square[] = new int[5];
int input = 0;
System.out.println("Input a valid integer from 1-49");
System.out.println("for array input please \\(^-^)/");
System.out.println("Remember (^_'), don't repeat numbers");
Scanner reader = new Scanner(System.in);
for (int i = 0; i < 5; i++) {
System.out.println(
"Please input the integer for position " + (i + 1) + " of the array");
input = reader.nextInt();
square[i] = input;
}
return square;
}
我研究过你可以制作一个像int[] data = getArray();
这样的变量
我如何才能使同一类中的其他方法可以访问数据,以便我可以执行类似
public static int linearSearch(data) {
}
无需不断地重新输入数组的值?
答案 0 :(得分:0)
你需要像这样声明你的数组:
public YourClass {
public static int[] square = new int[5];
}
通过这种方式,您可以从任何其他类访问此数组,它将保留精确数组(这是静态的)。例如:
来自Class1 - YourClass.square
来自Class2 - YourClass.square
两者都是相同的数组实例
答案 1 :(得分:0)
您可以尝试引入int[]
的私有变量并为其提供延迟初始化,如下所示:
class aClass {
int[] data; // default to the null
private int[] getArray() {
if (data == null) {
// your console logic for initialization
}
return data;
}
public static int linearSearch() {
int[] localData = getArray();
}
}
但在这种情况下,您可以在整个班级中更改方法中data
字段的内容。
答案 2 :(得分:0)
这可以通过两种方式完成:
- 将变量声明为类级变量
- 或者在main方法中将其声明为局部变量
public class ReturnIntArraysSO {
/**
* @param args
*/
public static void main(String[] args) {
int[] data = getArray();
for(int i : data){
System.out.print(i+" ");
}
linearSearch(data);
}
/**
*
* @return
*/
public static int[] getArray() {
int square[] = new int[5];
int input = 0;
System.out.println("Input a valid integer from 1-49");
System.out.println("for array input please \\(^-^)/");
System.out.println("Remember (^_'), don't repeat numbers");
Scanner reader = new Scanner(System.in);
for (int i = 0; i < 5; i++) {
System.out.println("Please input the integer for position "
+ (i + 1) + " of the array");
input = reader.nextInt();
square[i] = input;
}
return square;
}
/**
*
* @param data
* @return
*/
public static void linearSearch(int[] data) {
for(int a : data){
if(a == 5){
System.out.println("\nFound 5!!");
}
}
}
/**
* @param args
*/
public static void main(String[] args) {
int[] data = getArray();
for(int i : data){
System.out.print(i+" ");
}
linearSearch(data);
}
/**
*
* @return
*/
public static int[] getArray() {
int square[] = new int[5];
int input = 0;
System.out.println("Input a valid integer from 1-49");
System.out.println("for array input please \\(^-^)/");
System.out.println("Remember (^_'), don't repeat numbers");
Scanner reader = new Scanner(System.in);
for (int i = 0; i < 5; i++) {
System.out.println("Please input the integer for position "
+ (i + 1) + " of the array");
input = reader.nextInt();
square[i] = input;
}
return square;
}
/**
*
* @param data
* @return
*/
public static void linearSearch(int[] data) {
for(int a : data){
if(a == 5){
System.out.println("\nFound 5!!");
}
}
}