[英]Adding elements from one array to another Java
幾年休息后才回到Java。 我正在嘗試從一個數組中選擇元素並將其存儲在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
提前致謝
您可以使用.addAll(...)
方法或此處找到的許多方法之一。
至於打印數組的元素……您將必須實現自己的.toString()
方法,以避免顯示對象引用。
這是一個使您更容易使用的小示例,因為您已經注意到一段時間后剛回到Java,希望對您有所幫助:)
public class PersonDetails {
private String userName;
private String gender;
@Override
public String toString() {
return "PersonDetails [userName=" + userName + ", gender=" + gender
+ "]";
}
}
現在,當您打印出數組時,將為每個PersonDetail對象打印在toString()方法中創建的String。
您應該使用System.out.println(Arrays.asList(userRemoveArray));
。 要么
for(int i = 0; i < userRemoveArray.length;i++) {
System.out.print(userRemoveArray[i]+", ");
}
System.out.println();
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.