Подтвердить что ты не робот

Печать ArrayList

У меня есть ArrayList, содержащий объекты Address.

Как напечатать значения этого ArrayList, то есть я распечатываю содержимое массива, в этом случае номера.

Я могу получить его, чтобы распечатать фактический адрес памяти массива с помощью этого кода:

for(int i = 0; i < houseAddress.size(); i++) {   
    System.out.print(houseAddress.get(i));
}  
4b9b3361

Ответ 1

Arrays.toString(list.toArray())

Ответ 2

Добавьте toString() метод в ваш класс address, затем выполните

System.out.println(Arrays.toString(houseAddress));

Ответ 3

Из того, что я понимаю, вы пытаетесь напечатать ArrayList массивов и один из способов отображения которых будет

System.out.println(Arrays.deepToString(list.toArray()));

Ответ 4

так как вы не предоставили настраиваемую реализацию для метода toString(), он вызывает значение по умолчанию, по которому будет печататься адрес в памяти для этого объекта

Решение в классе Address переопределите метод toString(), подобный этому

public class Address {

int addressNo ; 
....
....
...

protected String toString(){
    return Integer.toString(addressNo);
}

теперь, когда вы вызываете

houseAddress.get(i)  in the `System.out.print()` method like this

System.out.print( houseAddress.get(i) ) объект toString() объекта Address будет называться

Ответ 5

assium, что у вас есть список номеров, подобный этому

List<Integer> numbers = Arrays.asList(1, 2, 3, 4, 5, 6);

если вы распечатываете список

//method 1
// Conventional way of printing arraylist
for (int number : numbers) {
    System.out.print(number);
}

//method 2
// Lambda Expression to print arraylist
numbers.forEach((Integer value) -> System.out.print(value));

//method 3
// Lambda Expression to print arraylist
numbers.forEach(value -> System.out.print(value));


//method 4
// Lambda Expression (method reference) to print arraylist
numbers.forEach(System.out::print);

Ответ 6

Вы говорите, что ArrayList хранит адреса массивов, потому что это то, что возвращается из вызова toString, или потому, что на самом деле то, что вы храните?

Если у вас есть ArrayList массивов (например,

int[] arr = {1, 2, 3};
houseAddress.add(arr);

Затем для печати значений массива необходимо вызвать Arrays.deepToString:

for (int i = 0; i < houseAddress.size(); i++) {
     System.out.println(Arrays.deepToString(houseAddress.get(i)));
}

Ответ 7

public void printList(ArrayList<Address> list){
    for(Address elem : list){
        System.out.println(elem+"  ");
    }
}

Ответ 8

Вы можете просто указать его как:

System.out.println("Address:" +houseAddress);

Ваш результат будет выглядеть как [address1, address2, address3]

Это связано с тем, что класс ArrayList или его суперкласс должен иметь переопределенную функцию toString().

Надеюсь, что это поможет.

Ответ 9

Поместите homeAddress.get(i) внутри скобок и вызовите функцию .toString(): i.e См. ниже

for(int i = 0; i < houseAddress.size(); i++) {System.out.print((houseAddress.get(i)).toString());
}  

Ответ 10

Поскольку Java 8, вы можете использовать метод forEach() из интерфейса Iterable.
Это метод по умолчанию. В качестве аргумента требуется объект класса, который реализует функциональный интерфейс Consumer. Вы можете реализовать Consumer локально тремя способами:

С анонимным классом:

houseAddress.forEach(new Consumer<String>() {
    @Override
    public void accept(String s) {
        System.out.println(s);
    }
}); 

lambda выражение:

houseAddress.forEach(s -> System.out.println(s));

или с помощью справки метода:

houseAddress.forEach(System.out::print);

Этот способ печати работает для всех реализаций интерфейса Iterable.
Все они дают вам способ определения того, как будут печататься элементы, тогда как toString() применяет список печати в одном формате.

Ответ 11

Я не уверен, понял ли я понятие адресов (я здесь принимаю houseAddress), но если вы ищете способ распечатать ArrayList, вот вы:

System.out.println(houseAddress.toString().replaceAll("\\[\\]", ""));

Ответ 12

Вы можете использовать Итератор. Это самая простая и наименее спорная вещь. Скажем houseAddress имеет значения типа данных String

    Iterator<String> iterator = houseAddress.iterator();
    while (iterator.hasNext()) {
    out.println(iterator.next());
    }

Примечание. Вы можете даже использовать расширенный цикл для этого, как упомянуто мной в другом ответе

Ответ 13

 public static void main(String[] args) {
        List<Moyen> list = new ArrayList<Moyen>();
        Moyen m1 = new Moyen();
        m1.setCodification("c1");
        m1.setCapacityManager("Avinash");
        Moyen m2 = new Moyen();
        m2.setCodification("c1");
        m2.setCapacityManager("Avinash");
        Moyen m3 = new Moyen();
        m3.setCodification("c1");
        m3.setCapacityManager("Avinash");

        list.add(m1);
        list.add(m2);
        list.add(m3);
        System.out.println(Arrays.toString(list.toArray()));
    }

Ответ 14

Это помогло мне:

System.out.println(Arrays.toString(codeLangArray.toArray()));

Ответ 15

Вы даже можете использовать расширенный цикл for или итератор, например:

for (String name : houseAddress) {
    System.out.println(name);
}

Вы можете изменить его на любой тип данных houseAddress и избежать ненужных преобразований.

Ответ 16

если вы сделаете @Override public String toString() в качестве комментариев, вы получите те же результаты, что и вы. Но если вы реализуете свой метод toString(), он будет работать.

public class PrintingComplexArrayList {

public static void main(String[] args) {
    List houseAddress = new ArrayList();
    insertAddress(houseAddress);
    printMe1(houseAddress);
    printMe2(houseAddress);
}

private static void insertAddress(List address)
{
    address.add(new Address(1));
    address.add(new Address(2));
    address.add(new Address(3));
    address.add(new Address(4));
}
private static void printMe1(List address)
{
    for (int i=0; i<address.size(); i++)
        System.out.println(address.get(i));
}

private static void printMe2(List address)
{
    System.out.println(address);
}

}

class Address {private int addr; public Address(int i) { addr = i; public Address (int i) {addr = i; }

@Override public String toString()
{
    Integer iAddr = new Integer (addr);
    return iAddr.toString();
}

}

Ответ 17

Убедитесь, что у вас есть getter в классе адресов House, а затем используйте:

for(int i = 0; i < houseAddress.size(); i++) {   
    System.out.print(houseAddress.get(i)**.getAddress()**);
}

Ответ 18

for(int i = 0; i < houseAddress.size(); i++) {   
System.out.print(houseAddress.get(i)**.getAddress()**);

}

только это из всех вышеперечисленных ответов работает

Ответ 19

Вы можете использовать формат печати, если вы просто хотите напечатать элемент на консоли.

for(int i = 0; i < houseAddress.size(); i++) {   
    System.out.printf("%s", houseAddress.get(i));
}  

Ответ 20

Предполагая, что houseAddress.get(i) является ArrayList, вы можете добавить toString() после ArrayList:

for(int i = 0; i < houseAddress.size(); i++) {   
    System.out.print(houseAddress.get(i).toString());
} 

Общий пример:

ArrayList<Double> a = new ArrayList();
a.add(2.);
a.add(32.);
System.out.println(a.toString());
// output
// [2.0, 32.0]

Ответ 21

Это простой код добавления значения в ArrayList и печати значения ArrayList

public class Samim {

public static void main(String args[]) {
    // Declare list
    List<String> list = new ArrayList<>();

    // Add value in list
    list.add("First Value ArrayPosition=0");
    list.add("Second Value ArrayPosition=1");
    list.add("Third Value ArrayPosition=2");
    list.add("Fourth Value ArrayPosition=3");
    list.add("Fifth Value ArrayPosition=4");
    list.add("Sixth Value ArrayPosition=5");
    list.add("Seventh Value ArrayPosition=6");

    String[] objects1 = list.toArray(new String[0]);

    // Print Position Value
    System.err.println(objects1[2]);

    // Print All Value
    for (String val : objects1) {
        System.out.println(val);
      }
    }
}