我想在不使用任何类型的循环的情况下打印 Arraylist 中的元素,这在 java 中可能吗?
import java.util.ArrayList;
class Person
{
String name;
String role;
public Person(String name, String role)
{
this.name = name;
this.role = role;
}
}
class Main
{
public static void main(String[] args)
{
Person person1 = new Person("george","programmer");
Person person2 = new Person("barack","programmer");
Person person3 = new Person("ismail","programmer");
ArrayList <Person> people = new ArrayList <Person>();
people.add(person1);
people.add(person2);
people.add(person3);
System.out.println(people.get(0));
System.out.println(people.get(1));
System.out.println(people.get(2));
}
}
这取决于你如何定义“循环”。可以使用递归方法来完成:
void print( ArrayList<Person> a, int index ) {
if ( (a != null) && (index < a.size()) ) {
System.out.println(a.get(index));
print( a, ++index );
}
}
然后调用 print(people, 0 );
不,这是不可能的。
每种方法都会以某种形式循环遍历数组列表的值。无论是普通的
for
循环还是 forEach
或内置 toString()
- 每种方法都会以某种形式循环或迭代列表的值。
无需循环即可一张一张打印 但问题是因为您使用的是对象类型,所以除非您在类中使用 toString 方法,否则无法打印对象 即使你不使用Arraylist,如果你想打印对象,它也不起作用,除非你使用toString方法
class Main
{
public static void main(String[] args)
{
ArrayList<Integer> arrayList = new ArrayList<Integer>();
arrayList.add(6);
arrayList.add(3);
arrayList.add(5);
System.out.println(arrayList.get(0));
System.out.println(arrayList.get(1));
System.out.println(arrayList.get(2));
}
}
可能必须让对象调用 tostring 方法来打印数据,否则你将获得对象引用
people.forEach(person -> System.out.println(person));
上面的单行代码使用了 Java-8 中引入的流功能。从概念上讲,您仍然在逐个迭代输入元素。但如果您正在寻找的话,它比使用 for 循环更简洁。