печать Arraylist без петли - PullRequest
0 голосов
/ 12 мая 2018

Я хочу напечатать элементы в моем 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));
    }
}

Ответы [ 5 ]

0 голосов
/ 17 мая 2018

Вы можете печатать одну за другой без использования цикла, но проблема в том, что вы используете тип объекта, поэтому вы не можете печатать объекты, если не используете метод 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));
        }
    } 
0 голосов
/ 12 мая 2018

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

Вышеупомянутая однострочная строка использует потоковую функциональность, представленную в Java-8.Концептуально, вы все еще перебираете элементы ввода один за другим.Но это более кратко, чем использование цикла for, если это то, что вы ищете.

0 голосов
/ 12 мая 2018

Нет, это невозможно.

Каждый подход будет перебирать значения списка массивов в определенной форме. Будь то обычный цикл for, forEach или встроенный toString() - каждый подход будет циклически повторять значения списка в той или иной форме.

0 голосов
/ 12 мая 2018

Зависит от того, как вы определяете «петлю». Это можно сделать с помощью рекурсивного метода:

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

0 голосов
/ 12 мая 2018

Скорее всего, для вывода данных потребуется метод вызова строки tostring, в противном случае вы получите ссылку на объект

...