0

数年ぶりに 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

前もって感謝します

4

3 に答える 3

0

これは、しばらくしてJavaに戻ってきたばかりであることに気付いたので、簡単にするための小さな例です。これがお役に立てば幸いです:)

public class PersonDetails {

private String userName;

private String gender;

@Override
public String toString() {
    return "PersonDetails [userName=" + userName + ", gender=" + gender
            + "]";
}

}

これで、配列を出力すると、toString()メソッド内で作成された文字列がPersonDetailオブジェクトごとに出力されます。

于 2012-11-18T17:09:44.390 に答える
0

メソッドまたはここ.addAll(...)にある多くのメソッドのいずれかを使用できます。

配列の要素の出力については.toString()、オブジェクト参照の表示を避けるために独自のメソッドを実装する必要があります。

于 2012-11-18T16:34:16.380 に答える
0

を使用する必要がありますSystem.out.println(Arrays.asList(userRemoveArray));。また

for(int i = 0; i < userRemoveArray.length;i++) {
  System.out.print(userRemoveArray[i]+", ");
}
System.out.println();
于 2012-11-18T17:13:23.273 に答える