如果有人能向我解释如何让这两个数组彼此相邻打印,我们将不胜感激。
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循环中使用的变量未初始化。
答案 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]);
}
}
}