0

この単純な例では、DB 内の各人の最初と最後が入力された文字列配列を作成したいと考えています。i次のループメソッドでオーバーライドし続けているため、非常に明白な何かが欠けていることはわかっています。2番目の目は確かに役立ちます。

    /**
 * 
 * @return
 */
public String[] buildFullNameContainer(){

    List<Person> allPeople = Person.findAllPeople();
    String[] peopleContainer = new String[] {""};
    String fullName = "";



        for (int i = 0; i < peopleContainer.length; i++) {
            for (Person person : allPeople) {
                fullName = person.getFirstName() + " " + person.getLastName();  
                peopleContainer[i] = fullName; 

            }
        }
    return peopleContainer;
}
4

5 に答える 5

4

配列には常に単一の要素があります。リストと同じ長さになるように作成する必要があります。fullNameさらに、理由もなく 2 つのネストされたループがあり、変数に意味がありません。使用するコードは次のとおりです。

String[] peopleContainer = new String[allPeople.size()];

for (int i = 0; i < peopleContainer.length; i++) {
    Person person = allPeople.get(i);
    peopleContainer[i] = person.getFirstName() + " " + person.getLastName();
}
于 2012-06-14T20:13:34.910 に答える
3

交換

String[] peopleContainer = new String[] {""};

String[] peopleContainer = new String[allPeople.size()];

また、次のようにループを編集します。

for(int i = 0; i < peopleContainer.length; i++)
{
    Person person = allPeople.get(i);
    fullName = person.getFirstName() + " " + person.getLastName();  
    peopleContainer[i] = fullName;  
}
于 2012-06-14T20:12:47.163 に答える
0

これは次のように変更する必要があると思います。

String[] peopleContainer = new String[] {""};

に:

String[] peopleContainer = new String[allPeople.size()];
于 2012-06-14T20:13:49.653 に答える
0

ソース データ コレクションではなく、結果配列をループしています。最初に配列のサイズを正しく設定してから、配列またはリストのいずれかのサイズをループする必要があります。ネストされた for は必要ありません。

public String[] buildFullNameContainer(){

    List<Person> allPeople = Person.findAllPeople();
    String[] peopleContainer = new String[allPeople.size()];
    for (int i = 0; i < peopleContainer.length; i++) {
        Person person = allPeople.get(i);
        String fullName = person.getFirstName() + " " + person.getLastName();  
        peopleContainer[i] = fullName; 
    }
return peopleContainer;
}
于 2012-06-14T20:15:54.117 に答える
0

これを試して。

    List<Person> allPeople = Person.findAllPeople();
    String[] peopleContainer = new String[allPeople.size()];

    for (int i=0;i < allPeople.size();i++;) {
          Person person=allPeople.get(i);
          fullName = person.getFirstName() + " " + person.getLastName();  
          peopleContainer[i] = fullName; 
    }
于 2012-06-14T20:16:46.470 に答える