[java] ArrayList 인쇄

Address 개체가 포함 된 ArrayList가 있습니다.

이 ArrayList의 값을 어떻게 인쇄합니까? 즉, Array의 내용,이 경우 숫자를 인쇄합니다.

이 코드를 사용하여 배열의 실제 메모리 주소 만 출력 할 수 있습니다.

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



답변

list.toString ()이면 충분합니다.

인터페이스 List는 toString ()에 대한 계약을 정의하지 않지만 AbstractCollection 기본 클래스는 ArrayList가 상속하는 유용한 구현을 제공합니다.


답변

클래스에 toString()메서드를 추가 address한 다음

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


답변

내가 이해하는 바에서 배열의 ArrayList를 인쇄하려고 시도하고 있으며 표시하는 한 가지 방법은

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


답변

사용자 정의 구현을 제공하지 않았기 때문에 toString()메서드에 해당 개체의 메모리에 주소를 인쇄 할 기본값을 호출합니다.


주소 클래스의 솔루션 은 다음 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객체가 호출된다


답변

간단히 다음과 같이 줄 수 있습니다.

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

출력은 다음과 같습니다. [address1, address2, address3]

이는 ArrayList 클래스 또는 해당 수퍼 클래스에 toString () 함수가 재정의되기 때문입니다.

도움이 되었기를 바랍니다.


답변

그런 숫자 목록이있는 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);


답변

그것이 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)));
}