如何按顺序打印两个增强的for循环

时间:2017-02-21 23:50:49

标签: java arrays for-loop

如果有人能向我解释如何让这两个数组彼此相邻打印,我们将不胜感激。

package labs;

import java.util.Arrays;

public class ArrayOfObjects {

public static void main (String[] args){

    String[] pets = {"dog", "cow", "sheep", "cat", "horse"};

    String[] names = {"Spot", "Milky", "Bahhhhd", "Meooooow", "Nayyybor"};

    for (String name : names){
            System.out.println(name.toString());
    }

    for (String type : pets){
            System.out.println(type.toString());
    }
}
}

我得到的输出显然是

Spot 
Milky   
Bahhhhd
Meooooow
Nayyybor
dog
cow
sheep
cat
horse

然而......我想要

Spot dog  
Milky cow
Bahhhhd sheep
Meooooow cat
Nayyybor horse

我尝试过的一件事是更改两个增强的for循环并在其中使用toString方法并且没有得到它来打印数组,但是当我在不同的for循环中打印两个数组时我在增强型for循环中使用的变量未初始化。

4 个答案:

答案 0 :(得分:1)

在这种情况下,您可以使用常规for循环,以便可以索引两个数组。您必须确保两个数组的长度相同。

for (int i = 0; i < names.length; i++){
    System.out.println(names[i] + " " + pets[i]);
}

我不像这样使用并行数组,因为它通常指向设计问题。如果您有相关数据,那么您应该创建一个将它保持在一起的类。

这是一个Pet类。

class Pet {
    private String name;
    private String type;

    public Pet(String name, String type) {
        this.name = name;
        this.type = type;
    }

    public String getName() {
        return name;
    }

    public String getType() {
        return type;
    }
}

现在,您可以遍历Pet的数组(或更好的列表)。

List<Pet> pets = new LinkedList<Pet>();
pets.add(new Pet("Spot", "dog"));
// add all the pets

for(Pet pet : pets) {
    System.out.println(pet.getName() + " " + pet.getType());
}

答案 1 :(得分:1)

试试这个:

public static void main(String[] args) {

        String[] pets = {"dog", "cow", "sheep", "cat", "horse"};

        String[] names = {"Spot", "Milky", "Bahhhhd", "Meooooow", "Nayyybor"};


        for(int i=0; i<pets.length; i++) {
            System.out.println(names[i] + " " + pets[i]);
        }
    }

输出结果为:

Spot dog
Milky cow
Bahhhhd sheep
Meooooow cat
Nayyybor horse

答案 2 :(得分:1)

我不相信这些数组的长度相同,因此我建议在 i 小于两个数组长度的地方循环。这可以确保您永远不会遇到arrayoutofbound异常

for (int i = 0; i < names.length && i < pets.length; i++){
        System.out.println(name[i] + " " + pets[i]);
}

答案 3 :(得分:0)

只有阵列大小相同时,下面的解决方案才有效。您可以使用的另一种解决方案是迭代器。

package labs;

import java.util.Arrays;

public class ArrayOfObjects {

  public static void main (String[] args){

    String[] pets = {"dog", "cow", "sheep", "cat", "horse"};

    String[] names = {"Spot", "Milky", "Bahhhhd", "Meooooow", "Nayyybor"};

    for (int i = 0; i < names.length; i++){
         System.out.println(names[i] + " " + pets[i]);
    }
  }

}