我如何使用 for each 循环来打印不同 类 的不同对象的 Arraylist
How can i use a for each loop to print an Arraylist of different objects of different classes
class Main
{
public static void main(String[] args)
{
Scanner input = new Scanner(System.in);
Loan loan = new Loan();
Date date = new Date();
Strings strings = new Strings();
Frame frame = new Frame();
Circle circle = new Circle();
ArrayList<Object> mylist = new ArrayList<Object>();
mylist.add(loan);
mylist.add(date);
mylist.add(strings);
mylist.add(frame);
mylist.add(circle);
for (Object i : mylist)
{
System.out.println(mylist.get(i));
}
/*
//this method is working fine
System.out.println(mylist.get(0));
System.out.println(mylist.get(1));
System.out.println(mylist.get(2));
System.out.println(mylist.get(3));
System.out.println(mylist.get(4));
//this method is also working fine
for (int i = 0; i < 4; i++)
{
System.out.println(mylist.get(i));
}*/
}
}
My Arraylist is of diiferent object types and all have fields with values and a toString method in each class (so that the printing is possible).....If i dont use a loop and if i use an iterating loop its working fine but i want to use a for each loop i used the above syntax but its showing errors.
改变
for (Object i : mylist)
{
System.out.println(mylist.get(i));
}
至
for (Object i : mylist)
{
System.out.println(i);
}
i
在 foreach
循环中是对象本身而不是索引。
myList.forEach(System.out::println);
并且不将 myList
声明为 ArrayList
,而仅将其声明为 List
- 更喜欢在可用时将变量声明为接口
这里:
for (Object i : mylist)
{
System.out.println(mylist.get(i));
^----- error here
}
您使用 Object
变量作为参数调用 myList.get()
。
它在编译时无效,因为 ArrayList.get()
将 int
作为参数:
E java.util.ArrayList.get(int index)
在某种程度上,您可以混合使用 foreach 和 "basic for" 语法。
"basic for"语句需要使用索引:
for (int i=0; i<mylist.size(); i++) {
System.out.println(myList.get(i));
}
但是 foreach 语法简化了:
for (Object i : mylist) {
System.out.println(i);
}
class Main
{
public static void main(String[] args)
{
Scanner input = new Scanner(System.in);
Loan loan = new Loan();
Date date = new Date();
Strings strings = new Strings();
Frame frame = new Frame();
Circle circle = new Circle();
ArrayList<Object> mylist = new ArrayList<Object>();
mylist.add(loan);
mylist.add(date);
mylist.add(strings);
mylist.add(frame);
mylist.add(circle);
for (Object i : mylist)
{
System.out.println(mylist.get(i));
}
/*
//this method is working fine
System.out.println(mylist.get(0));
System.out.println(mylist.get(1));
System.out.println(mylist.get(2));
System.out.println(mylist.get(3));
System.out.println(mylist.get(4));
//this method is also working fine
for (int i = 0; i < 4; i++)
{
System.out.println(mylist.get(i));
}*/
}
}
My Arraylist is of diiferent object types and all have fields with values and a toString method in each class (so that the printing is possible).....If i dont use a loop and if i use an iterating loop its working fine but i want to use a for each loop i used the above syntax but its showing errors.
改变
for (Object i : mylist)
{
System.out.println(mylist.get(i));
}
至
for (Object i : mylist)
{
System.out.println(i);
}
i
在 foreach
循环中是对象本身而不是索引。
myList.forEach(System.out::println);
并且不将 myList
声明为 ArrayList
,而仅将其声明为 List
- 更喜欢在可用时将变量声明为接口
这里:
for (Object i : mylist)
{
System.out.println(mylist.get(i));
^----- error here
}
您使用 Object
变量作为参数调用 myList.get()
。
它在编译时无效,因为 ArrayList.get()
将 int
作为参数:
E java.util.ArrayList.get(int index)
在某种程度上,您可以混合使用 foreach 和 "basic for" 语法。
"basic for"语句需要使用索引:
for (int i=0; i<mylist.size(); i++) {
System.out.println(myList.get(i));
}
但是 foreach 语法简化了:
for (Object i : mylist) {
System.out.println(i);
}