Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 使用数组和列表的正确循环构造_Java_Arrays_List_For Loop - Fatal编程技术网

Java 使用数组和列表的正确循环构造

Java 使用数组和列表的正确循环构造,java,arrays,list,for-loop,Java,Arrays,List,For Loop,在这个简单的示例中,我想创建一个字符串数组,填充每个人在数据库中的第一个和最后一个。我知道我遗漏了一些非常明显的东西,因为我一直在下面的循环方法中重写I。再看一眼肯定会有帮助 /** * * @return */ public String[] buildFullNameContainer(){ List<Person> allPeople = Person.findAllPeople(); String[] peopleContainer = ne

在这个简单的示例中,我想创建一个字符串数组,填充每个人在数据库中的第一个和最后一个。我知道我遗漏了一些非常明显的东西,因为我一直在下面的循环方法中重写
I
。再看一眼肯定会有帮助

    /**
 * 
 * @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;
}
/**
* 
*@返回
*/
公共字符串[]buildFullNameContainer(){
List allPeople=Person.findAllPeople();
String[]peopleContainer=新字符串[]{”“};
字符串fullName=“”;
for(int i=0;i
更换

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


另外,按如下方式编辑循环:

for(int i = 0; i < peopleContainer.length; i++)
{
    Person person = allPeople.get(i);
    fullName = person.getFirstName() + " " + person.getLastName();  
    peopleContainer[i] = fullName;  
}
for(int i=0;i
您的数组始终只有一个元素-您应该将其创建为与列表相同的长度。此外,您无缘无故地得到了两个嵌套循环,而且我在
fullName
变量中看不到任何意义。以下是我将使用的代码:

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();
}
String[]peopleContainer=新字符串[allPeople.size()];
for(int i=0;i
我认为这需要改变:

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


您在结果数组上循环,而不是在源数据集合上循环。首先必须正确调整数组的大小,然后循环调整数组或列表的大小。不需要嵌套的

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;
}
public字符串[]buildFullNameContainer(){
List allPeople=Person.findAllPeople();
String[]peopleContainer=新字符串[allPeople.size()];
for(int i=0;i
试试这个

    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; 
    }
List allPeople=Person.findAllPeople();
String[]peopleContainer=新字符串[allPeople.size()];
for(int i=0;i
到底出了什么问题?有些东西不起作用吗?调用此函数后,在字符串数组中循环时,只有一个值method@Warz:您怎么会期望有多个元素?您正在创建一个以一个元素开始的数组,而数组永远不会扩展…如果我删除outter for循环,如何引用“i”,因为它不会在开始时初始化
int i
。在
peopleContainer[i]=fullName中行,将
i
更改为
i++
。最佳答案是,它消除了不必要的内部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;
}
    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; 
    }