几年后休息回到Java。我试图从一个数组中选择元素并将它们存储在另一个数组中。我创建了一个具有固定数量元素的相同类型的新数组。我要复制的数组不是null我已将其打印出来。但是当我尝试显示新数组时,值不存在 - 只是对元素的引用。可能有些东西我忽略了。我一直在寻找最后一天,但我没有到达任何地方。我真的很感激一些帮助。代码如下:
PersonDetails user = new PersonDetails(userName,userGender,userAge,userInterests);
PersonDetails [] userArray = new PersonDetails [numberOfDaters];
PersonDetails [] dateArray = new PersonDetails [numberOfDaters];
userArray = user.getArray("datingdata.txt", numberOfDaters);
dateArray = Arrays.copyOf(userArray, userArray.length);
char [][] interestArray = new char[numberOfDaters][5];
for (int z =0;z<userArray.length; z++) {
interestArray[z] =
userArray[z].getAllInterests( userArray[z].getInterests());
}
String remove = user.getOnes(interestArray);
System.out.print(remove);
StringTokenizer st = new StringTokenizer(remove);
int num = st.countTokens();
PersonDetails [] userRemoveArray = new PersonDetails [num];
while(st.hasMoreTokens()) {
int token = Integer.parseInt(st.nextToken());
for(int x =0;x<userRemoveArray.length;x++) {
userRemoveArray[x] = userArray[token];
}
System.out.println(userRemoveArray);
}
输出如下:
[LPersonDetails;@a8c488
[LPersonDetails;@a8c488
[LPersonDetails;@a8c488
[LPersonDetails;@a8c488
[LPersonDetails;@a8c488
[LPersonDetails;@a8c488
[LPersonDetails;@a8c488
[LPersonDetails;@a8c488
[LPersonDetails;@a8c488
[LPersonDetails;@a8c488
[LPersonDetails;@a8c488
提前致谢
答案 0 :(得分:0)
您可以使用.addAll(...)
方法或here找到的众多方法之一。
至于打印出数组的元素......你必须实现自己的.toString()
方法以避免显示对象引用。
答案 1 :(得分:0)
这是一个小例子,让你更容易,因为你已经注意到你刚刚回到Java,我希望这可以帮助你:)
public class PersonDetails {
private String userName;
private String gender;
@Override
public String toString() {
return "PersonDetails [userName=" + userName + ", gender=" + gender
+ "]";
}
}
现在当你打印出数组时,在toString()方法中创建的字符串将为每个PersonDetail对象打印。
答案 2 :(得分:0)
您应该使用System.out.println(Arrays.asList(userRemoveArray));
。
或
for(int i = 0; i < userRemoveArray.length;i++) {
System.out.print(userRemoveArray[i]+", ");
}
System.out.println();