import java.util.Random;
import java.util.Scanner;
public class ArrayHelpers{
public static void main(String[] args){
String arr[] = {"M3", "M4", "M5", "M6", "X5M", "M750Li"};
String stockElements[] = {"BMW M2 Coupé","BMW M3 Sedan", "BMW M4 Coupé", "BMW M5 Sedan","BMW M6 Gran Coupé", "BMW X5 M", "BMW X6 M", "M 750Li"};
int size = 7;
printArrayQuantities(arr);
System.out.println(getRandomElement(arr));
System.out.println(getRandomArray(size, stockElements));
}
public static void printArrayQuantities(String[] arr){
int num[] = {2, 1, 3, 3, 5, 1};
for( int i = 0; i < num.length; i++){
System.out.println(arr[i] + " " + num[i]);
}
}
public static String getRandomElement(String[] arr){
int randomNum = 0 + (int)(Math.random() * 6);
return arr[randomNum];
}
public static String[] getRandomArray(int size, String[] stockElements){
String[] randArray = new String[size];
for( int i = 0; i < size; i++){
randArray[i] = getRandomElement(stockElements);
}
return randArray;
}
}
所以我试图返回一个随机插入了stockElements
到getRandomElement
方法的元素的数组。当我尝试从第12行(System.out.println(getRandomArray(size, stockElements));
)打印该数组时,它会生成[Ljava.lang.String;@6d06d69c
作为输出。我知道.toString()
方法,但我的任务要求是不使用任何内置数组方法。我到底该怎么做呢?
答案 0 :(得分:0)
一个简单的解决方案就是用 for each loop
来迭代它。
String[] myArray = getRandomArray(size, stockElements); // this stores a reference of the returned array.
for(String str : myArray){
System.out.println(str);
}
或 for loop
,如果您愿意的话。
String[] myArray = getRandomArray(size, stockElements); // this stores a reference of the returned array.
for(int i = 0; i < myArray.length; i++){
System.out.println(myArray[i]);
}
答案 1 :(得分:0)
由于您的函数返回一个数组,当您尝试打印数组时,您应该使用for / while循环遍历每个元素并单独打印它们。由于您正在尝试打印数组变量,因此会为其打印java的句柄。所以试试这样的事情
String[] randomArray = getRandomArray(size, stockElements);
for (String s : randomArray) {
System.out.println(s);
}
答案 2 :(得分:0)
您已经返回了数组,只需要分配它:
String[] newArray = getRandomArray(size, stockElements);
但是......如果你想打印它,请使用下面的内容。
使用Java 8:
String.join(delimiter, newArray);
或(对于较旧的Java):
StringBuilder builder = new StringBuilder();
for(String s : newArray) {
builder.append(s);
builder.append(delimeter);
}
return builder.toString();
答案 3 :(得分:0)
将System.out.println(getRandomArray(size, stockElements));
替换为
String [] output = getRandomArray(size, stockElements);
printArrayQuantities(output);