将元素从一个数组添加到另一个Java

时间:2012-11-18 16:24:07

标签: java arrays

几年后休息回到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

提前致谢

3 个答案:

答案 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();