不循环打印Arraylist

print Arraylist without loop

我想在不使用任何类型的循环的情况下打印 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));
    }
}

可能必须获取对象调用 tostring 方法来打印数据,否则您将获取对象引用

不,不可能。

每种方法都会以某种形式循环数组列表的值。无论是普通的 for 循环还是 forEach 还是内置的 toString() - 每种方法都会以某种形式循环或迭代列表的值。

这取决于你如何定义"loop"。可以使用递归的方法来完成:

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 );

people.forEach(person -> System.out.println(person));

上面的一行代码使用了 Java-8 中引入的流功能。从概念上讲,您仍然在一个一个地迭代输入元素。但它比使用 for 循环更简洁,如果您正在寻找的话。

You can print one by one without using loop but the problem is because you are using object type so you cannot print objects unless you use a toString method in the class even if you don’t use Arraylist it wont work if you want to print object, unless you use toString method

    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));
        }
    } 
  • 在JAVA.

    中不使用任何循环打印数组是非常简单的方法

    -> 对于,单个或简单数组:

     int[] array = new int[]{1, 2, 3, 4, 5, 6};
     System.out.println(Arrays.toString(array));
    

    输出:

          [1, 2, 3, 4, 5, 6]
    

    -> 所以,这个二维数组不能用 Arrays.toString()

    打印
     int[][] array = new int[][]{{1, 2, 3, 4, 5, 6, 7}, {8, 9, 10, 11, 12,13,14}};
     System.out.println(Arrays.deepToString(array));
    

    输出:

       [[1, 2, 3, 4, 5, 6, 7], [8, 9, 10, 11, 12, 13, 14]]
    

☻♥ 完成保留代码