java arraylist how declare
이 튜토리얼은 코드 예제로 Java ArrayList를 선언, 초기화 및 인쇄하는 방법을 설명합니다. 또한 2D Arraylist 및 Java에서 ArrayList 구현에 대해 배우게됩니다.
Java Collections Framework 및 List 인터페이스는 이전 자습서에서 자세히 설명했습니다. ArrayList는 Collections Framework의 일부인 데이터 구조이며 배열 및 벡터와 유사하게 볼 수 있습니다.
ArrayList는 언제든지 또는 간단히 말하면 동적으로 요소를 추가하거나 제거 할 수있는 동적 배열로 인식 할 수 있습니다.
=> 여기에서 Java Beginners Guide를 살펴보십시오.
즉, 일단 선언되면 크기가 정적으로 유지되는 배열과 달리 크기가 동적으로 증가하거나 감소 할 수 있습니다.
학습 내용 :
- Java의 ArrayList 클래스
- 결론
Java의 ArrayList 클래스
Java의 ArrayList 데이터 구조는 '의 일부인 ArrayList 클래스로 표시됩니다. java.util ”패키지.
ArrayList 클래스의 계층 구조는 다음과 같습니다.
보시다시피 ArrayList 클래스는 Collection 인터페이스에서 확장되는 List 인터페이스를 구현합니다.
ArrayList 클래스의 일반적인 정의는 다음과 같습니다.
public class ArrayList extends AbstractList implements List,RandomAccess, Cloneable, Serializable
다음은 ArrayList의 몇 가지 특징입니다.
- Java의 ArrayList 클래스는 삽입 순서를 유지하여 요소를 저장합니다.
- ArrayList는 그 안에 저장된 중복 요소를 허용합니다.
- ArrayList는 동기화되지 않으며 Java의 Vector 클래스와 ArrayList를 구별하는 주요 지점입니다.
- Java의 ArrayList는 C ++의 벡터와 더 동일합니다.
- Java의 ArrayList는 또한 배열과 같은 인덱스를 사용하고 임의 액세스를 지원합니다.
- ArrayList에서 요소를 제거하려면 요소를 많이 이동해야하므로 ArrayList의 요소를 조작하는 작업이 느립니다.
- ArrayList 클래스는 기본 유형을 포함 할 수없고 객체 만 포함합니다. 이 경우 일반적으로 'ArrayList of objects'라고합니다. 따라서 정수 유형의 요소를 저장하려면 기본 유형 int가 아닌 래퍼 클래스의 Integer 객체를 사용해야합니다.
ArrayList 생성 및 선언
프로그램에서 ArrayList 클래스를 사용하려면 먼저 아래와 같이 'import'지시문을 사용하여 프로그램에 포함시켜야합니다.
import java.util.ArrayList;
또는
import java.util.*; //this will include all classes from java.util package
프로그램에서 ArrayList 클래스를 가져 오면 ArrayList 객체를 만들 수 있습니다.
일반적인 ArrayList 생성 구문은 다음과 같습니다.
ArrayList arrayList = new ArrayList ();
기본 생성자를 사용하는 위의 문 외에도 ArrayList 클래스는 ArrayList를 만드는 데 사용할 수있는 다른 오버로드 된 생성자도 제공합니다.
생성자 메서드
Java의 ArrayList 클래스는 ArrayList를 만들기 위해 다음과 같은 생성자 메서드를 제공합니다.
방법 # 1 : ArrayList ()
이 메서드는 ArrayList 클래스의 기본 생성자를 사용하며 빈 ArrayList를 만드는 데 사용됩니다.
이 메서드의 일반적인 구문은 다음과 같습니다.
ArrayList list_name = new ArrayList();
예를 들어, 다음 문을 사용하여 String 유형의 일반 ArrayList를 만들 수 있습니다.
ArrayList arraylist = new ArrayList();
그러면 String 유형의‘arraylist’라는 빈 ArrayList가 생성됩니다.
방법 # 2 : ArrayList (int 용량)
이 오버로드 된 생성자를 사용하여 생성자에 대한 인수로 제공된 지정된 크기 또는 용량을 사용하여 ArrayList를 만들 수 있습니다.
이 메서드의 일반적인 구문은 다음과 같습니다.
ArrayList list_name = new ArrayList(int capacity);
예:
ArrayList arraylist = new ArrayList(10);
위의 문은 용량이 10 인 Integer 유형의‘arraylist’라는 빈 ArrayList를 만듭니다.
방법 # 3 : ArrayList (컬렉션 c)
ArrayList 클래스의 세 번째 오버로드 된 생성자는 이미 존재하는 컬렉션을 인수로 사용하고 지정된 컬렉션 c의 요소를 초기 요소로 사용하여 ArrayList를 만듭니다.
이 생성자를 사용하는 ArrayList 초기화의 일반 구문은 다음과 같습니다.
ArrayList list_name = new ArrayList (Collection c)
예를 들어, intList가 {10,20,30,40,50} 요소가있는 기존 컬렉션 인 경우 다음 문은 intList의 내용을 초기 요소로 사용하여 'arraylist'목록을 만듭니다.
ArrayList ArrayList = new ArrayList(intList);
ArrayList 클래스는 목록의 내용을 조작하는 데 사용할 수있는 다양한 메서드도 지원합니다. 이 메서드에 대해서는 다음 자습서 인 '자바의 ArrayList 메서드'에서 자세히 설명합니다.
Java에서 ArrayList 초기화
ArrayList가 생성되면 값으로 ArrayList를 초기화하는 여러 가지 방법이 있습니다. 이 섹션에서는 이러한 방법에 대해 설명합니다.
# 1) Arrays.asList 사용
여기서 Arrays 클래스의 asList 메서드를 사용하여 List로 변환 된 Array를 전달하여 ArrayList를 초기화 할 수 있습니다.
일반 구문 :
ArrayList arrayListName = new ArrayList( Arrays.asList (Object o1, Object o2, …, Object on));
예:
import java.util.*; public class Main { public static void main(String args()) { //create and initialize ArrayList object myList with Arrays.asList method ArrayList myList = new ArrayList( Arrays.asList('One', 'Two', 'Three')); //print the ArrayList System.out.println('List contents:'+myList); } }
산출:
# 2) 익명 내부 클래스 메서드 사용
여기서는 익명의 내부 클래스를 사용하여 ArrayList를 값으로 초기화합니다.
ArrayList 초기화에 익명 내부 클래스를 사용하는 일반적인 구문은 다음과 같습니다.
ArrayListarraylistName = new ArrayList(){{ add(Object o1); add (Object o2);… add (Object on);}};
예:
import java.util.*; public class Main { public static void main(String args()) { //create and initialize ArrayList with anonymous inner class calls ArrayList colors = new ArrayList(){{ add('Red'); add('Blue'); add('Purple'); }}; //print the ArrayList System.out.println('Content of ArrayList:'+colors); } }
산출:
# 3) add 메소드 사용
모든 컬렉션에 요소를 추가하는 일반적인 방법입니다.
add 메서드를 사용하여 ArrayList에 요소를 추가하는 일반적인 구문은 다음과 같습니다.
ArrayListArraylistName = new ArrayList(); ArraylistName.add(value1); ArraylistName.add(value2); ArraylistName.add(value3);
프로그래밍 예 :
import java.util.*; public class Main { public static void main(String args()) { //create ArrayList ArrayList colors = new ArrayList(); //add elements to the ArrayList using add method colors.add('Red'); colors.add('Green'); colors.add('Blue'); colors.add('Orange'); //print the ArrayList System.out.println('Content of ArrayList:'+colors); }
산출:
# 4) Collection.nCopies 메서드 사용
이 메서드는 동일한 값으로 ArrayList를 초기화하는 데 사용됩니다. 초기화 할 요소의 수와 메서드에 대한 초기 값을 제공합니다.
초기화의 일반적인 구문은 다음과 같습니다.
ArrayList arrayListName = new ArrayList(Collections.nCopies(count, element));
아래 예제는 Collections.nCopies 메서드를 사용한 배열 초기화를 보여줍니다.
import java.util.*; public class Main { public static void main(String args()) { //create ArrayList with 10 elements //initialized to value 10 using Collections.nCopies ArrayList intList = new ArrayList(Collections.nCopies(10,10)); //print the ArrayList System.out.println('Content of ArrayList:'+intList); } }
산출:
ArrayList 반복
ArrayList를 순회하거나 순환하는 방법은 다음과 같습니다.
- for 루프 사용
- for-each 루프 (향상된 for 루프)
- Iterator 인터페이스 사용.
- ListIterator 인터페이스로.
- forEachRemaining () 메서드를 사용합니다.
실제로 이러한 메서드는 일반적으로 컬렉션을 반복하는 데 사용됩니다. 이 튜토리얼에서는 ArrayList와 관련된 각 메소드의 예제를 볼 것입니다.
# 1) for 루프 사용
인덱스 기반 for 루프를 사용하여 ArrayList를 탐색하고 해당 요소를 인쇄 할 수 있습니다.
다음은 for 루프를 사용하여 ArrayList를 순회하고 인쇄하는 예제입니다.
import java.util.*; public class Main { public static void main(String() args) { //create a list List intList = new ArrayList(); intList.add(10); intList.add(20); intList.add(30); intList.add(40); intList.add(50); //create & initialize a new ArrayList with previous list ArrayList arraylist = new ArrayList(intList); System.out.println('Contents of ArrayList using for-loop:'); //use for loop to traverse through its elements and print it for(int i=0;i 산출:
이것은 ArrayList의 요소를 탐색하고 인쇄하는 가장 간단하고 쉬운 방법이며 다른 컬렉션의 경우에도 동일한 방식으로 작동합니다.
# 2) for-each 루프 별 (향상된 for 루프)
for-each 루프 또는 향상된 for 루프를 사용하여 ArrayList를 탐색 할 수도 있습니다. Java 8 이전에는 람다식이 포함되지 않았습니다. 그러나 Java 8부터는 for-each 루프에 Lambda 표현식을 포함 할 수도 있습니다.
아래 프로그램은 각 루프 및 람다 표현식을 사용하여 ArrayList의 순회 및 인쇄를 보여줍니다.
import java.util.*; public class Main { public static void main(String() args) { //create a list List intList = new ArrayList(); intList.add(10); intList.add(20); intList.add(30); intList.add(40); intList.add(50); //create & initialize a new ArrayList with previous list ArrayList arraylist = new ArrayList(intList); System.out.println('Contents of ArrayList using for-each loop:'); //use for-each loop to traverse through its elements and print it intList.forEach(val ->{ System.out.print(val + ' '); }); } }
산출:
# 3) 반복자 인터페이스 사용
이전 주제에서 Iterator 인터페이스를 자세히 살펴 보았습니다. 반복자 인터페이스를 사용하여 ArrayList를 반복하고 해당 값을 인쇄 할 수 있습니다.
다음 프로그램이이를 보여줍니다.
import java.util.*; public class Main { public static void main(String() args) { //create a list List intList = new ArrayList(); intList.add(5); intList.add(10); intList.add(15); intList.add(20); intList.add(25); //create & initialize a new ArrayList with previous list ArrayList arraylist = new ArrayList(intList); System.out.println('Contents of ArrayList using Iterator interface:'); //Traverse through the ArrayList using iterator Iterator iter=arraylist.iterator(); while(iter.hasNext()){ System.out.print(iter.next() + ' '); } } }
산출:
# 4) ListIterator 인터페이스 별
ListIterator를 사용하여 ArrayList를 탐색 할 수도 있습니다. ListIterator는 ArrayList를 순방향 및 역방향으로 순회하는 데 사용할 수 있습니다.
ListIterator 사용 예를 보여주는 Java 프로그램을 구현해 보겠습니다.
import java.util.*; class Main{ public static void main(String args()){ //create a list and initiliaze it List colors_list=new ArrayList();//Creating arraylist colors_list.add('Red'); colors_list.add('Green'); colors_list.add('Blue'); colors_list.add('Cyan'); colors_list.add('Magenta'); colors_list.add('Yellow'); System.out.println('The contents of the list using ListIterator:'); //Traverse the list using ListIterator ListIterator color_iter=colors_list.listIterator(colors_list.size()); while(color_iter.hasPrevious()) { String str=color_iter.previous(); System.out.print(str + ' '); } } }
산출:
출력에서 볼 수 있듯이 위의 프로그램에서 ArrayList는 ListIterator의 hasPrevious () 및 previous () 메서드를 사용하여 역방향으로 순회됩니다.
# 5) forEachRemaining () 메서드로
이것은 ArrayList를 순회하는 방법 중 하나이며 Java 8부터 사용할 수 있습니다.
다음 프로그램은 ArrayList를 순회하는 forEachRemaining () 메서드를 보여줍니다.
import java.util.*; class Main{ public static void main(String args()){ //create a list and initiliaze it List colors_list=new ArrayList(); colors_list.add('Red'); colors_list.add('Green'); colors_list.add('Blue'); colors_list.add('Cyan'); colors_list.add('Magenta'); colors_list.add('Yellow'); System.out.println('The contents of the list using forEachRemaining() method:'); //Traverse the list using forEachRemaining () method Iterator itr=colors_list.iterator(); itr.forEachRemaining(val-> //lambda expression { System.out.print(val + ' '); }); } }
산출:
JSON 파일을 어떻게 열 수 있습니까?
반복기와 함께 forEachRemaining () 메서드를 사용합니다. 각각 비슷하며이 메서드 내에서 람다 식을 사용합니다.
ArrayList Java 예제
이 섹션에서는 Java의 ArrayList 구현을 살펴 보겠습니다. 예를 들어, Java ArrayList를 생성, 초기화 및 사용하여 다양한 조작을 수행하는 완전한 예제를 구현합니다.
import java.util.ArrayList; class Main { public static void main(String() args) { //Creating a generic ArrayList ArrayList newList = new ArrayList(); //Size of arrayList System.out.println('Original size of ArrayList at creation: ' + newList.size()); //add elements to it newList.add('IND'); newList.add('USA'); newList.add('AUS'); newList.add('UK'); //print the size after adding elements System.out.println('ArrayList size after adding elements: ' + newList.size()); //Print ArrayList contents System.out.println('Contents of the ArrayList: ' + newList); //Remove an element from the list newList.remove('USA'); System.out.println('ArrayList contents after removing element(USA): ' + newList); //Remove another element by index newList.remove(2); System.out.println('ArrayList contents after removing element at index 2: ' + newList); //print new size System.out.println('Size of arrayList: ' + newList.size()); //print list contents System.out.println('Final ArrayList Contents: ' + newList); } }
산출:
Java의 2 차원 ArrayList
ArrayList에는 Array와 같은 차원이 없다는 것을 알고 있습니다. 그러나 '2D ArrayLists'또는 'ArrayList of ArrayLists'라고도하는 중첩 된 ArrayLists를 가질 수 있습니다.
이러한 중첩 된 ArrayList 뒤에있는 간단한 아이디어는 ArrayList가 주어지면이 ArrayList의 각 요소가 또 다른 ArrayList라는 것입니다.
다음 프로그램을 사용하여 이것을 이해합시다.
import java.util.*; public class Main { public static void main(String() args) { int num = 3; // declare an arrayList of ArrayLists or 2D ArrayList ArrayList intList = new ArrayList (num); // Create individual elements or ArrayLists and add them to intList as elements ArrayList list_elem1 = new ArrayList(); list_elem1.add(10); intList.add(list_elem1); ArrayList list_elem2 = new ArrayList(); list_elem2.add(20); list_elem2.add(30); intList.add(list_elem2); ArrayList list_elem3 = new (); list_elem3.add(40); list_elem3.add(50); list_elem3.add(60); intList.add(list_elem3); System.out.println('Contents of 2D ArrayList(Nested ArrayList):'); //print the 2D ArrayList or nested ArrayList for (int i = 0; i 산출:
위 프로그램은 2D ArrayList를 보여줍니다. 여기에서 먼저 ArrayList의 ArrayList를 선언합니다. 그런 다음 이러한 ArrayList 각각을 Nested ArrayList에 추가 할 때 중첩 된 ArrayList의 개별 요소로 사용할 개별 ArrayList를 정의합니다.
ArrayList의 각 요소에 액세스하려면 get 메서드를 두 번 호출해야합니다. 먼저 Nested ArrayList의 행에 액세스 한 다음 행과 열의 개별 교차점에 액세스합니다.
ArrayList의 중첩 수준을 늘려 다차원 ArrayList를 정의 할 수 있습니다. 예를 들면 3D ArrayList는 요소로 2D ArrayLists를 갖게됩니다.
자주 묻는 질문
Q # 1) Java의 ArrayList는 무엇입니까?
대답: Java의 ArrayList는 동적 배열입니다. 본질적으로 크기를 조정할 수 있습니다. 즉, 새 요소가 추가되면 크기가 증가하고 요소가 삭제되면 축소됩니다.
Q # 2) Array와 ArrayList의 차이점은 무엇입니까?
대답: Array는 정적 구조에 있으며 선언 된 후에는 크기를 변경할 수 없습니다. ArrayList는 동적 배열이며 요소가 추가되거나 제거 될 때 크기가 변경됩니다.
배열은 Java의 기본 구조 인 반면 ArrayList는 Java의 Collection Framework의 일부입니다. 또 다른 차이점은 Array는 첨자 (())를 사용하여 요소에 액세스하는 반면 ArrayList는 메서드를 사용하여 요소에 액세스한다는 것입니다.
Q # 3) ArrayList는 목록입니까?
대답: ArrayList는 목록의 하위 유형입니다. ArrayList는 클래스이고 List는 인터페이스입니다.
Q # 4) ArrayList는 컬렉션입니까?
대답: 아니요. ArrayList는 인터페이스 인 Collection의 구현입니다.
Q # 5) ArrayList의 크기는 어떻게 증가합니까?
대답: 내부적으로 ArrayList는 Array로 구현됩니다. ArrayList에는 크기 매개 변수가 있습니다. 요소가 ArrayList에 추가되고 크기 값에 도달하면 ArrayList는 내부적으로 다른 배열을 추가하여 새 요소를 수용합니다.
결론
이것은 Java에서 ArrayList 클래스의 기본에 대한 자습서였습니다. ArrayList의 자세한 프로그래밍 구현과 함께 ArrayList 클래스의 생성 및 초기화를 살펴 보았습니다.
또한 2D 및 다차원 ArrayList에 대해서도 논의했습니다. ArrayList 클래스는 요소를 조작하는 데 사용할 수있는 다양한 메서드를 지원합니다. 다음 튜토리얼에서는 이러한 방법을 사용합니다.
추천 도서