ArrayList는 Java에서 인기 있는 주제였습니다. 이는 표준 어레이보다 더 많은 이점을 제공합니다. ArrayList를 사용하면 객체를 연속으로 효율적으로 저장하고 필요하지 않을 때 지울 수 있습니다. 또한 정렬 및 검색과 같은 목록에 대한 표준 작업을 수행하는 데 도움이 됩니다. 표준 배열을 사용하려면 이러한 작업에 대한 논리를 직접 작성해야 하므로 추가 시간과 주의가 필요합니다.
ArrayList는 다양한 이점으로 인해 다양한 경우에 응용할 수 있습니다. 그러나 ArrayLists에 내장되어 있지 않은 중요한 작업은 인쇄입니다. ArrayList는 표준, 기본 데이터 유형(예:정수 및 문자열) 또는 사용자 정의 클래스와 같은 고급 데이터 유형으로 구성될 수 있습니다. 이러한 각 경우에 ArrayList를 인쇄하려면 다른 단계가 필요합니다.
이 기사에서는 위에서 논의한 두 가지 유형의 ArrayList를 다루면서 Java에서 ArrayList를 인쇄하는 세 가지 주요 방법을 살펴보겠습니다. 더 이상 고민하지 말고 시작해 보세요!
Java ArrayList 인쇄:세 가지 방법
위에서 언급했듯이 ArrayList에는 두 가지 유형이 있습니다. 하나는 기본적이고 간단한 데이터 유형(예:정수 및 부동 소수점)을 갖는 객체를 포함하는 것이고, 다른 하나는 사용자 정의 클래스를 통해 인스턴스화되는 객체를 포함하는 것입니다. 이 두 가지 유형의 ArrayList를 인쇄하는 방법에는 여러 가지가 있습니다.
다음은 Java에서 ArrayList를 인쇄하는 세 가지 주요 방법입니다:
- for 루프 사용
- println 명령 사용
- toString() 사용 구현
방법 1:for 루프 사용
for 루프는 목록이나 배열을 반복하는 가장 간단한 방법 중 하나입니다. 이 방법은 모든 항목을 하나씩 반복하면 그에 따라 각 항목을 처리할 수 있으므로 간단한 배열 및 ArrayList와 잘 작동합니다.
이 방법은 각 요소에 대한 특정 구현을 정의하는 데 도움이 됩니다. 다음은 for 루프의 구문입니다.
for (int i=0; i<arr.size(); i++) {
// Assuming arr is an ArrayList object
int current = arr.get(i);
// Do something with the current element here
} 이제 for 루프를 사용하여 객체 배열을 탐색하는 몇 가지 일반적인 방법을 살펴보겠습니다.
for 루프 예시
for 루프를 사용하여 ArrayList의 모든 요소를 간단히 인쇄할 수 있습니다.
ArrayList<Integer> arr = new ArrayList<>();
arr.add(3);
arr.add(4);
arr.add(5);
arr.add(6);
for (int i=0; i<arr.size(); i++) {
int curr = arr.get(i);
System.out.println(curr);
}
이를 한 단계 더 발전시키려면 조건에 따라 각 요소에 대한 특정 사례를 정의할 수 있습니다.
ArrayList arr = new ArrayList<>();
arr.add(3);
arr.add(5l);
arr.add("Hello World!");
for (int i=0; i<arr.size(); i++) {
if (arr.get(i) instanceof Integer)
System.out.println(arr.get(i) + " is a number");
else if (arr.get(i) instanceof String)
System.out.println(arr.get(i) + " is a string");
else if (arr.get(i) instanceof Long)
System.out.println(arr.get(i) + " is a long");
} 이 방법을 사용해야 하는 경우
for 루프는 상대적으로 짧은 요소 집합이 있고 해당 유형이 많이 변하지 않는 상황에 가장 적합합니다. 정수(int) 또는 문자열인 20개 항목 목록이 있는 경우 for 루프를 사용하는 것이 좋습니다. 문자열, 정수, 부울 또는 기타 항목이 될 수 있는 100개 이상의 항목 목록이 있는 경우 for 루프는 사용하기 너무 번거롭습니다.
방법 2:println 명령 사용
println 원시 데이터 유형을 사용하여 만든 ArrayList의 경우 명령을 직접 사용할 수 있습니다. Java의 기본 데이터 유형에는 문자열, 정수, 부동 소수점, long, double 및 부울이 포함됩니다. 목록이 이러한 유형과 일치하지 않는 데이터로 구성된 경우 이 방법을 사용하여 인쇄할 수 없습니다.
이 메소드의 구문은 간단합니다:
System.out.println(arr); // Assuming arr is an ArrayList object
이 방법이 작동하는 이유는 모든 기본 데이터 유형을 표준 출력 장치에 직접 인쇄할 수 있기 때문입니다. 인쇄 가능한 형식으로 구문 분석할 필요는 없습니다. 사용자 정의 클래스의 인스턴스에 저장된 것과 같은 다른 데이터는 println 명령으로 직접 구문 분석할 수 없으므로 이 방법은 이 경우 작동하지 않습니다.
println 예
간단한 정수 ArrayList를 인쇄하려는 경우 수행 방법은 다음과 같습니다:
ArrayList<Integer> arr = new ArrayList<>(); arr.add(5); arr.add(4); arr.add(6); System.out.println(arr); # => [5, 4, 6]
이기종 ArrayList를 인쇄하려는 경우에도 작동합니다.
ArrayList<> arr = new ArrayList<>();
arr.add(7);
arr.add("Foo");
arr.add(12l);
System.out.println(arr);
# => [7, Foo, 12] 이 방법을 사용해야 하는 경우
이 방법은 짧고 간단한 항목 목록이 있고 디버깅 목적으로 인쇄하려는 상황에 가장 적합합니다. 이 방법은 이전 방법만큼 유연하지 않으며 출력 장치에 인쇄되는 콘텐츠의 형식을 지정할 수 없습니다.
또한 목록에 기본이 아닌 데이터가 포함되어 있으면 해당 값이 장치에 인쇄되지 않습니다. 대신 메모리 내 해당 위치에 대한 포인터가 인쇄됩니다.
class Foo {
int bar;
public Foo(int bar){ this.bar = bar; };
}
ArrayList<> arr = new ArrayList<>();
arr.add(4);
arr.add(new Foo(40));
System.out.println(arr);
# => [4, 34n2dsf@Foo]; 방법 3:toString() 메서드 구현
이 방법에는 이전 방법의 단점이 없습니다. 기본이 아닌 객체를 출력에 직접 인쇄할 수 없는 이유는 컴파일러가 이를 인쇄하는 방법을 모르기 때문입니다. toString() 메소드를 사용하면 클래스의 객체를 명령줄에 인쇄하는 방법을 컴파일러에 알릴 수 있습니다.
마지막 예에서 Foo 클래스를 살펴보겠습니다.
class Foo {
int bar;
public Foo(int bar){ this.bar = bar; };
}
이것을 인쇄하기 쉽게 만들려면 toString()을 재정의하고 정의해야 합니다. 클래스 정의의 메소드:
class Foo {
int bar;
public Foo(int bar){ this.bar = bar; };
public String toString() {
return "Bar: " + String.valueOf(bar);
}
} 이제 Foo 인스턴스를 생성해 보면:
그리고 인쇄하세요:
이전에 정의한 출력을 얻게 됩니다.
이 작은 수정 사항을 println 메소드와 결합하면 모든 종류의 ArrayList를 쉽고 빠르게 인쇄할 수 있습니다.
toString() 예
방법 2의 마지막 예를 가져와서 println 친화적으로 만들어 보겠습니다.
class Foo {
int bar;
public Foo(int bar){ this.bar = bar; };
}
ArrayList<> arr = new ArrayList<>();
arr.add(4);
arr.add(new Foo(40));
System.out.println(arr);
# => [4, Foo@2a139a55];
여기서 해야 할 유일한 변경 사항은 toString()을 추가하는 것입니다. Foo 클래스의 정의:

"Career Karma는 제가 가장 필요할 때 제 삶에 들어왔고 빠르게 부트캠프에 적응할 수 있도록 도와주었습니다. 졸업한 지 두 달 만에 저는 제 삶의 가치와 목표에 맞는 꿈의 직업을 찾았습니다!"
Venus, Rockbot의 소프트웨어 엔지니어
귀하에게 적합한 부트캠프 찾기
class Foo {
int bar;
public Foo(int bar){ this.bar = bar; };
public String toString(){
return "Value: " + String.valueOf(bar);
}
}
Now, the println statement will give the desired output:
// # => [4, Value: 40] 이 방법을 사용해야 하는 경우
이 방법은 이종 ArrayList 또는 사용자 정의 클래스로 구성된 동종 ArrayList를 인쇄해야 하는 상황에 적합합니다. 클래스의 단일 메서드 정의를 사용하면 for 루프를 사용할 때 발생할 수 있는 문제를 줄일 수 있습니다.
그러나 이 방법은 단순한 상황에서는 과도한 것처럼 보일 수 있습니다. 요소 목록이 작다면 논리의 용이성과 단순성을 위해 for 루프 방법을 사용하는 것을 고려해 볼 수 있습니다.
결론
Java ArrayList를 인쇄하는 것은 간단한 작업이 아닙니다. ArrayList의 내용이 더 동적일수록 목록을 표준 출력으로 인쇄하는 것이 더 어렵습니다. println 명령은 대부분의 경우에 적용할 수 있지만 toString()가 필요할 수도 있습니다. 작업을 완료하려면 재정의하세요.
이 기사에서는 ArrayList를 인쇄하는 세 가지 방법을 다루었습니다. 우리는 구문, 예제 및 가장 적합한 상황을 살펴보았습니다. 더 많은 고급 Java 리소스를 보려면 Java 학습 방법에 대한 가이드를 살펴보세요.