java list methods sort list
이 튜토리얼은 정렬 목록, 목록 포함, 목록 추가, 목록 제거, 목록 크기, AddAll, RemoveAll, Reverse List 등과 같은 다양한 Java 목록 메소드를 설명합니다.
이전 튜토리얼에서 일반적인 목록 인터페이스에 대해 이미 논의했습니다. 목록 인터페이스에는 목록의 내용을 조작하는 데 사용되는 다양한 메소드가 있습니다. 이러한 방법을 사용하여 목록에서 요소를 삽입 / 삭제, 정렬 및 검색 할 수 있습니다.
이 자습서에서는 목록 인터페이스에서 제공하는 모든 메서드에 대해 설명합니다.
=> 여기에서 Java 교육 자습서의 A-Z를 보려면 여기를 확인하십시오.
최고의 무료 컴퓨터 클리너 및 수리
목록을 반복하기 위해 목록 인터페이스는 목록 반복기를 사용합니다. 이 목록 반복기는 반복기 인터페이스에서 확장됩니다. 다음 자습서에서는 목록 반복기에 대해 자세히 살펴볼 것입니다.
학습 내용 :
Java에서 메소드 나열
다음 표는 Java의 목록 인터페이스에서 제공하는 다양한 기능을 보여줍니다.
목록 방법 | 방법 프로토 타입 | 기술 |
---|---|---|
포함 | 부울 포함 (Object o) | 지정된 요소가 목록에 있는지 확인하고 존재하는 경우 true를 반환합니다. |
크기 | int 크기 () | 목록의 크기, 즉 목록의 요소 수 또는 목록의 길이를 반환합니다. |
맑은 | 무효 클리어 () | 목록의 모든 요소를 제거하여 목록을 지 웁니다. |
더하다 | void add (int index, Object 요소) | 주어진 인덱스의 목록에 주어진 요소를 추가합니다. |
부울 추가 (Object o) | 목록 끝에 주어진 요소를 추가합니다. | |
addAll | boolean addAll (콜렉션 c) | 주어진 컬렉션 전체를 목록 끝에 추가합니다. |
부울 addAll (int index, Collection c) | 지정된 인덱스의 목록에 지정된 컬렉션 (모든 요소)을 삽입합니다. | |
containsAll | boolean containsAll (콜렉션 c) | 지정된 컬렉션 (모든 요소)이 목록의 일부인지 확인합니다. yes의 true를 반환합니다. |
같음 | 부울 같음 (Object o) | 지정된 개체와 목록의 요소가 같은지 비교합니다. |
가져 오기 | 개체 가져 오기 (int 인덱스) | 인덱스로 지정된 목록의 요소를 반환합니다. |
해시 코드 | int hashCode () | List의 해시 코드 값을 반환합니다. |
indexOf` | int indexOf (객체 o) | 입력 요소의 첫 번째 항목을 찾아 해당 인덱스를 반환합니다. |
비었다 | 부울 isEmpty () | 목록이 비어 있는지 확인 |
lastIndexOf | int lastIndexOf (객체 o) | 목록에서 입력 요소의 마지막 항목을 찾아 색인을 반환합니다. |
없애다 | 개체 제거 (int 인덱스) | 지정된 인덱스에서 요소를 제거합니다. |
부울 제거 (Object o) | 목록에서 처음 나타나는 요소를 제거합니다. | |
모두 제거 | boolean removeAll (콜렉션 c) | 목록에서 지정된 컬렉션에 포함 된 모든 요소를 제거합니다. |
유지 | boolean preserveAll (콜렉션 c) | removeAll의 반대입니다. 목록의 입력 컬렉션에 지정된 요소를 유지합니다. |
세트 | 객체 세트 (int index, Object 요소) | 지정된 값으로 설정하여 지정된 인덱스의 요소를 변경합니다. |
하위 목록 | 목록 하위 목록 (int fromIndex, int toIndex) | fromIndex (inclusive)와 toIndex (exclusive) 사이에있는 요소의 하위 목록을 리턴합니다. |
종류 | 무효 정렬 (비교기 c) | 지정된 비교기에 따라 목록 요소를 정렬하여 정렬 된 목록을 제공합니다. |
toArray | Object [] toArray () | 목록의 배열 표현을 반환합니다. |
Object [] toArray (Object [] a) | 런타임 유형이 지정된 배열 인수와 동일한 배열 표현을 반환합니다. | |
반복자 | 반복기 반복기 () | 목록에 대한 반복자를 반환합니다. |
listIterator | ListIterator listIterator () | 목록에 대한 ListIterator를 반환합니다. |
ListIterator listIterator (int 인덱스) | 목록의 지정된 인덱스에서 시작하는 ListIterator를 반환합니다. |
다음으로 이러한 함수에 대한 예제와 함께 설명합니다.
크기
원기: int 크기 ()
매개 변수 : 무
반환 값 : int => 목록의 요소 수 또는 즉 목록의 길이입니다.
기술: size ()는 요소 수 또는 목록의 크기를 반환합니다. 간단한 용어로 길이라고도 할 수 있습니다.
맑은
원기: 무효 clear ()
매개 변수 : 무
반환 값 : 반환 값 없음
기술: 목록의 모든 요소를 제거하여 목록을 지 웁니다. 목록에서 작업을 지원하지 않는 경우 'UnSupportedException'이 발생합니다.
아래 예제는 size () 및 clear () 메서드를 보여줍니다.
import java.util.*; public class Main { public static void main(String[] args) { List strList = new ArrayList(); // Creating a list //add items to list strList.add('Java'); strList.add('C++'); //print the size of list System.out.println('Size of list:' + strList.size()); //add more items to list strList.add('Ruby'); strList.add('Python'); strList.add('C#'); //print the size of list again System.out.println('Size of list after adding more elements:' + strList.size()); //clear method strList.clear(); System.out.println('List after calling clear() method:' + strList); } }
산출:
더하다
원기: void add (int index, Object 요소)
매개 변수 : index- 요소가 추가 될 위치.
Element- 추가 할 요소
반환 값 : 빈
기술: 지정된 인덱스의 목록에 지정된 요소를 추가합니다. 후속 요소는 오른쪽으로 이동합니다.
다음 예외가 발생합니다.
IndexOutOfBoundsException : 목록 색인이 범위를 벗어났습니다.
UnsupportedOperationException : 추가 작업은 목록에서 지원되지 않습니다.
ClassCastException : 지정된 요소의 클래스로 인해 요소를 목록에 추가 할 수 없습니다.
IllegalArgumentException : 지정된 요소 또는 일부 측면이 올바르지 않습니다.
더하다
원기: 부울 추가 (Object o)
매개 변수 : o => 목록에 추가 할 요소
반환 값 : true => 요소가 성공적으로 추가되었습니다.
False => 추가 실패
기술: 이 메서드는 목록 끝에 지정된 요소를 추가합니다.
이 작업은 다음 예외를 throw 할 수 있습니다.
UnsupportedOperationException : 이 목록에서 지원하지 않는 추가 작업입니다.
ClassCastException : 클래스로 인해 지정된 요소를 추가 할 수 없습니다.
IllegalArgumentException : 지정된 요소 또는 일부 측면이 올바르지 않습니다.
addAll
원기: boolean addAll (콜렉션 c)
매개 변수 : c => 목록에 요소를 추가 할 컬렉션
반환 값 : true => 메서드 실행 성공
기술: addAll 메서드는 컬렉션 c의 모든 요소를 가져 와서 설정된 순서를 유지하여 목록 끝에 추가합니다.
이 메서드는 작업이 진행 중일 때 컬렉션이 변경되면 지정되지 않은 동작을 나타냅니다.
이 메서드는 다음 예외를 throw합니다.
UnsupportedOperationException : 이 목록에서 지원하지 않는 추가 작업입니다.
ClassCastException : 클래스로 인해 지정된 요소를 추가 할 수 없습니다.
IllegalArgumentException : 지정된 요소 또는 일부 측면이 올바르지 않습니다.
addAll
원기: 부울 addAll (int index, Collection c)
매개 변수 : index => 컬렉션이 삽입 될 위치.
C => 목록에 삽입 할 컬렉션.
반환 값 : true => 컬렉션 요소가 목록에 성공적으로 추가 된 경우.
기술: addAll 메서드는 지정된 컬렉션의 모든 요소를 지정된 인덱스의 목록에 삽입합니다. 그런 다음 후속 요소가 오른쪽으로 이동합니다. addAll의 이전 오버로드의 경우와 마찬가지로 작업이 진행 중일 때 컬렉션이 변경되면 동작이 지정되지 않습니다.
이 메서드에서 throw되는 예외는 다음과 같습니다.
UnsupportedOperationException : 이 목록에서 지원하지 않는 추가 작업입니다.
ClassCastException : 클래스로 인해 지정된 요소를 추가 할 수 없습니다.
IllegalArgumentException : 지정된 요소 또는 일부 측면이 올바르지 않습니다.
IndexOutOfBoundsException : 인덱스가 범위를 벗어났습니다.
아래 프로그램은 목록의 add 및 addAll 메소드의 데모를 보여줍니다.
import java.util.*; public class Main { public static void main(String[] args) { List strList = new ArrayList(); // Creating a list strList.add('Java'); strList.add('C++'); //print the list System.out.println('List after adding two elements:' + strList); List llist = new ArrayList(); // Create another list llist.add('Ruby'); llist.add('Python'); llist.add('C#'); // addAll method - add llist to strList strList.addAll(llist); System.out.println('List after addAll:'+ strList); } }
산출:
포함
원기: 부울 contains (Object o)
매개 변수 : o => 목록에서 검색 할 요소.
반환 값 : true => 목록에 지정된 요소가 포함 된 경우.
기술: 'contains'메소드는 지정된 요소가 목록에 있는지 확인하고 요소가 있으면 부울 값 true를 반환합니다. 그렇지 않으면 false를 반환합니다.
containsAll
원기: 부울 containsAll (컬렉션 c)
매개 변수 : c => 목록에서 검색 할 컬렉션.
반환 값 : true => 지정된 컬렉션의 모든 요소가 목록에있는 경우.
기술: 'containsAll'메서드는 지정된 컬렉션에있는 모든 요소가 목록에 있는지 확인합니다. 존재하는 경우 true 값을 반환하고 그렇지 않으면 false를 반환합니다.
다음 Java 프로그램은 목록의 'contains'및 'containsAll'메소드의 사용법을 보여줍니다.
import java.util.*; public class Main { public static void main(String[] args) { //define list of strings List list = new ArrayList(); //initialize list to strings list.add('Java'); list.add('Xml'); list.add('Python'); list.add('Ruby'); list.add('JavaScript'); //contains method demo if(list.contains('C')==true) System.out.println('Given list contains string 'C''); else if(list.contains('Java')==true) System.out.println('Given list contains string 'Java' but not string 'C''); //containsAll method demo List myList = new ArrayList(); myList.add('Ruby'); myList.add('Python'); if(list.containsAll(myList)==true) System.out.println('List contains strings 'Ruby' and 'Python''); } }
산출:
주어진 목록에는 문자열‘Java’가 포함되지만‘C’문자열은 포함되지 않습니다.
목록에는‘Ruby’및‘Python’문자열이 포함됩니다.
같음
원기: 부울 같음 (Object o)
매개 변수 : o => 동등성을 테스트 할 개체입니다.
반환 값 : true => 주어진 객체가 목록과 같은 경우.
기술: 이 방법은 주어진 객체를 같음 목록과 비교하는 데 사용됩니다. 지정된 객체가 목록이면 메서드는 true를 반환합니다. 두 목록은 크기가 같고 두 목록의 해당 요소가 같고 순서가 같은 경우에만 동일하다고합니다.
equals 방법의 데모는 다음과 같습니다.
import java.util.LinkedList; import java.util.List; public class Main { public static void main(String[] args) { //define lists List first_list= new LinkedList(); List second_list = new LinkedList(); List third_list = new LinkedList(); //initialize lists with values for (int i=0;i<11;i++){ first_list.add(i); second_list.add(i); third_list.add(i*i); } //print each list System.out.println('First list: ' + first_list); System.out.println('Second list: ' + second_list); System.out.println('Third list: ' + third_list); //use equals method to check equality with each list to other if (first_list.equals(second_list) == true) System.out.println('
first_list and second_list are equal.
'); else System.out.println('first_list and second_list are not equal.
'); if(first_list.equals(third_list)) System.out.println('first_list and third_list are equal.
'); else System.out.println('first_list and third_list are not equal.
'); if(second_list.equals(third_list)) System.out.println('second_list and third_list are equal.
'); else System.out.println('second_list and third_list are not equal.
'); } }
산출:
가져 오기
원기: 객체 get (int 인덱스)
매개 변수 : index => 요소가 반환 될 위치.
반환 값 : object => 지정된 위치의 요소.
기술: get () 메서드는 지정된 위치의 요소를 반환합니다.
이 메서드는 지정된 인덱스가 목록 범위를 벗어난 경우 'indexOutOfBoundsException'을 발생시킵니다.
세트
원기: 개체 집합 (int 인덱스, 개체 요소)
매개 변수 : index => 새 요소가 설정 될 위치.
element => index에 의해 주어진 위치에 배치 될 새로운 요소.
반환 값 : Object => 교체 된 요소
기술: set () 메소드는 주어진 색인에있는 요소를 요소가 제공하는 다른 값으로 대체합니다.
이 메서드는 다음 예외를 throw 할 수 있습니다.
UnsupportedOperationException : 설정 작업은 목록에서 지원되지 않습니다.
ClassCastException : 요소의 클래스로 인해 작업을 수행 할 수 없습니다.
IllegalArgumentException : 논쟁 또는 그 일부 측면이 불법입니다.
IndexOutOfBoundsException : 인덱스가 범위를 벗어났습니다.
다음 프로그램은 get () 및 set () 메소드의 예를 보여줍니다.
import java.util.*; public class Main { public static void main(String[] args) { //define list List listA = new ArrayList(); listA.add('Java'); listA.add('C++'); listA.add('Python'); //access list elements using index with get () method System.out.println('Element at index 0:' + listA.get(0)); System.out.println('Element at index 1:' + listA.get(1)); System.out.println('Element at index 2:' + listA.get(2)); //set element at index 1 to Ruby listA.set(1,'Ruby'); System.out.println('Element at index 1 changed to :' + listA.get(1) ); } }
산출:
해시 코드
원기: int hashCode ()
매개 변수 : 무
반환 값 : int => 목록의 hashCode
기술: ‘hashCode ()’메서드는 정수 값인 목록의 hashCode를 반환합니다.
예:
import java.util.*; public class Main { public static void main(String[] args) { // Initializing a list of type Linkedlist List mylist = new LinkedList(); mylist.add(1); mylist.add(3); mylist.add(5); mylist.add(7); //print the list System.out.println('The list:' + mylist); //use hashCode() method to find hashcode of list int hash = mylist.hashCode(); System.out.println('Hashcode for list:' + hash); } }
산출:
비었다
원기: 부울 isEmpty ()
매개 변수 : 무
반환 값 : true => 목록이 비어 있습니다.
기술: ‘isEmpty ()’메서드는 목록이 비어 있는지 확인합니다. IsEmpty 메서드는 해당 요소 처리를 시작하기 전에 목록에 요소가 있는지 확인하는 데 사용됩니다.
indexOf
원기: int indexOf (객체 o)
매개 변수 : 목록에서 검색 할 o => 요소
반환 값 : int => 목록에서 주어진 요소가 처음 나타나는 인덱스 또는 위치. 요소가 없으면 -1을 반환합니다.
기술: 메소드‘indexOf ()’는 목록에서 주어진 요소 o가 처음 나타나는 색인을 반환합니다. 요소가 없으면 -1을 반환합니다.
lastIndexOf
원기: int lastIndexOf (객체 o)
매개 변수 : o => 색인을 검색 할 개체
반환 값 : int => 목록에서 주어진 요소의 마지막 발생 인덱스, 그렇지 않으면 -1.
기술: ‘lastIndexOf ()’메소드는 목록에서 마지막으로 나타나는 요소 o의 색인을 반환합니다. 요소를 찾을 수없는 경우 메서드는 -1을 반환합니다.
아래의 Java 프로그램은 목록의 indexOf 및 lastIndexOf 메소드 사용을 보여줍니다.
import java.util.*; public class Main { public static void main(String[] args) { // define an integer array List intList = new ArrayList(5); //add elements to the list intList.add(10); intList.add(20); intList.add(30); intList.add(10); intList.add(20); //print the list System.out.println('The list of integers:' + intList); // Use indexOf() and lastIndexOf() methods of list to find first and last index System.out.println('first index of 20:' + intList.indexOf(20)); System.out.println('last index of 10:' + intList.lastIndexOf(10)); } }
산출:
없애다
원기: 개체 제거 (int 인덱스)
매개 변수 : index => 요소가 제거 될 목록의 색인 또는 위치
반환 값 : 개체 => 요소 제거됨
기술: 'remove ()'메소드는 목록에서 지정된 위치에있는 요소를 제거합니다. 삭제 후 삭제 된 요소 옆의 요소가 왼쪽으로 이동합니다.
이 메서드는 다음 예외를 throw 할 수 있습니다.
UnsupportedOperationException : 제거는 목록에서 지원되지 않습니다.
IndexOutOfBoundsException : 지정된 색인이 범위를 벗어났습니다.
없애다
원기: 부울 제거 (Object o)
매개 변수 : o => 목록에서 제거 할 요소
반환 값 : true => 요소가 성공적으로 제거되었습니다.
기술: 이 오버로드 된 버전의 remove () 메서드는 목록에서 주어진 요소 o의 첫 번째 발생을 제거합니다. 주어진 요소가 목록에 없으면 변경되지 않은 상태로 유지됩니다.
이 메서드는 다음 예외를 throw 할 수 있습니다.
UnsupportedOperationException : 제거는 목록에서 지원되지 않습니다.
모두 제거
원기: boolean removeAll (컬렉션 c)
매개 변수 : c => 목록에서 제거 된 요소를 포함하는 컬렉션입니다.
반환 값 : true => 메서드 호출이 성공하고 컬렉션 c에 지정된 모든 요소가 목록에서 제거 된 경우.
기술: 'removeAll ()'메소드는 인수로 전달되는 콜렉션 c에 지정된 목록에서 모든 요소를 제거하는 데 사용됩니다.
이 메서드는 다음 예외를 throw 할 수 있습니다.
UnsupportedOperationException : removeAll은 목록에서 지원되지 않습니다.
remove 및 removeAll 메소드의 예를 살펴 보겠습니다.
import java.util.*; public class Main { public static void main(String[] args) { // Creating a list List oddList = new ArrayList(); //add elements to the list oddList.add(1); oddList.add(3); oddList.add(5); oddList.add(7); oddList.add(9); oddList.add(11); //print the original list System.out.println('Original List:' + oddList); // Removes element from index 1 oddList.remove(1); System.out.println('Oddlist after removing element at index 1:' + oddList); //removeAll method List c1 = new ArrayList(); c1.add(1); c1.add(5); c1.add(11); oddList.removeAll(c1); System.out.println('Oddlist after removing elements {1,5,11}}:' + oddList); } }
산출:
유지
원기: boolean preserveAll (컬렉션 c)
매개 변수 : c => 목록에 유지되어야하는 요소를 포함하는 컬렉션.
반환 값 : true => 메소드 호출이 목록을 변경 한 경우.
기술: 이 메서드는 컬렉션에있는 요소를 제외하고 목록에서 모든 요소를 제거합니다. c. 즉,이 메서드는 컬렉션 c에있는 목록의 모든 요소를 유지하고 다른 요소를 제거합니다.
이 메서드는 다음 예외를 throw 할 수 있습니다.
UnsupportedOperationException : preserveAll은 List에서 지원하지 않습니다.
import java.util.*; public class Main { public static void main(String[] args) { // Creating a list List oddList = new ArrayList(); //add elements to the list oddList.add(1); oddList.add(3); oddList.add(5); oddList.add(7); oddList.add(9); oddList.add(11); //print the original list System.out.println('Original List:' + oddList); //retainAll method List c1 = new ArrayList(); c1.add(1); c1.add(5); c1.add(11); oddList.retainAll(c1); System.out.println('Oddlist after call to retainAll (1,5,11):' + oddList); } }
산출:
하위 목록
원기: 목록 하위 목록 (int fromIndex, int toIndex)
매개 변수 : fromIndex => 목록의 하위 색인 (포함)
toIndex => 목록의 상위 색인 (배타적)
반환 값 : List => 주어진 목록의 하위 목록
기술: sublist () 메소드는 'fromIndex'에서 'toIndex'까지의 하위 목록이라고도하는 목록의 부분보기를 반환합니다. 반환 된 하위 목록은 상위 목록의보기 일 뿐이므로 두 목록에 대한 변경 사항은 모든 곳에 반영됩니다.
마찬가지로 목록의 모든 작업은 하위 목록에서도 작동합니다.
이 메서드는 다음 예외를 throw 할 수 있습니다.
IndexOutOfBoundsException : toIndex 값이 잘못되었습니다.
하위 목록 방법에 대한 예제 프로그램은 다음과 같습니다.
import java.util.*; public class Main { public static void main(String[] args) { // define a string list List strList = new ArrayList(5); //add elements to the list strList.add('Java'); strList.add('Tutorials'); strList.add('Collection'); strList.add('Framework'); strList.add('Series'); //print the original list System.out.println('The original list=>strList: ' + strList); //define another list List subList = new ArrayList(); // take a sublist of elements from 2 to 4 from strList subList = strList.subList(2, 4); //print the sublist System.out.println('The sublist of strList:' + subList); } }
산출:
정렬 목록
원기: 무효 정렬 (비교기 c)
매개 변수 : c => 목록이 정렬되는 기준이되는 비교기.
반환 값 : 무
기술: 목록을 정렬하려면‘정렬 ()’방법을 사용합니다. 이 메서드는 지정된 비교기를 사용하여 목록을 정렬합니다.
정렬 방법의 예를 살펴 보겠습니다. . 요소를 자연스러운 순서로 정렬하는 Collections.sort 메서드와 비교했습니다. 프로그램의 출력은 정렬 된 목록입니다.
import java.util.Collections; import java.util.ArrayList; import java.util.List; import java.util.Random; public class Main { public static void main(String[] args) { //define list List intArray = new ArrayList(); Random random = new Random(); //populate the list with random numbers <20 for (int i = 0; i {return (o2-o1);}); //comparator to sort in reverse System.out.println('Reverse List sorted using comparator:
'+intArray); } }
산출:
toArray
원기: 객체 [] toArray ()
매개 변수 : 무
반환 값 : 객체 [] => 목록의 배열 표현
기술: toArray () 메소드는 적절한 순서로 목록의 배열 표현을 리턴합니다.
toArray
원기: Object [] toArray (Object [] a)
매개 변수 : a => 목록을 배열로 변환하는 동안 목록 요소 유형과 일치시킬 배열 유형.
반환 값 : Object [] => 목록의 배열 표현.
기술: toArray () 메서드의이 오버로드는 목록에서 배열 a와 동일한 런타임 유형을 가진 요소를 포함하는 배열을 반환합니다.
이 메서드는 다음 예외를 throw 할 수 있습니다.
ArrayStoreException : 목록에있는 모든 요소의 런타임 유형은이 목록에있는 모든 요소의 런타임 유형의 하위 유형이 아닙니다.
다음은 toArray 메소드 구현의 예입니다.
import java.util.*; public class Main { public static void main(String[] args) { // create list ArrayList colorsList = new ArrayList(7); // add colors to colorsList colorsList.add('Violet'); colorsList.add('Indigo'); colorsList.add('Blue'); colorsList.add('Green'); colorsList.add('Yellow'); colorsList.add('Orange'); colorsList.add('Red'); System.out.println('Size of the colorsList: ' + colorsList.size()); // Print the colors in the list System.out.println('Contents of colorsList:'); for (String value : colorsList){ System.out.print(value + ' '); } // Create an array from the list using toArray method String colorsArray[] = new String[colorsList.size()]; colorsArray = colorsList.toArray(colorsArray); // Display the contents of the array System.out.println('
Printing elements of colorsArray:' + Arrays.toString(colorsArray)); } }
산출:
반복자
원기: 반복기 반복기 ()
매개 변수 : 무
반환 값 : Iterator => 목록의 요소를 반복하는 반복자
기술: 이 메서드는 목록의 요소를 반복하는 반복기를 반환합니다.
반복자를 사용하여 시연하는 Java 프로그램.
import java.util.*; public class Main { public static void main(String[] args) { // create list ArrayList colorsList = new ArrayList(7); // add colors to colorsList colorsList.add('Violet'); colorsList.add('Indigo'); colorsList.add('Blue'); colorsList.add('Green'); colorsList.add('Yellow'); colorsList.add('Orange'); colorsList.add('Red'); System.out.println('ColorList using iterator:'); //define iterator for colorsList Iterator iterator = colorsList.iterator(); //iterate through colorsList using iterator and print each item while(iterator.hasNext()){ System.out.print(iterator.next() + ' '); } } }
산출:
listIterator
원기: ListIterator listIterator ()
매개 변수 : 무
반환 값 : ListIterator => 목록에있는 요소의 Listiterator입니다.
기술: listIterator () 메소드는 목록에있는 요소의 ListIterator 객체를 반환합니다. 이 반복기는 목록의 시작 부분 (예 : 인덱스 0)에서 시작합니다.
listIterator
원기: ListIterator listIterator (int 인덱스)
매개 변수 : index => listIterator가 시작되는 위치.
반환 값 : ListIterator => 목록의 지정된 인덱스에있는 ListIterator 개체입니다.
기술: listIterator () 메서드의 오버로드는 목록의 지정된 위치에서 시작하는 listIterator를 반환합니다. 주어진 인덱스는 ListIterator의 nextElement () 메서드에 대한 첫 번째 호출에 의해 반환 될 첫 번째 요소가 될 것임을 나타냅니다.
메서드는 인덱스의 잘못된 값에 대해 IndexOutOfBoundsException을 throw 할 수 있습니다.
다음 예제는 listIterator 사용법을 보여줍니다.
import java.util.*; public class Main { public static void main(String[] args) { //define list & add items to list List nameList = new LinkedList(); nameList.add('Java'); nameList.add('C++'); nameList.add('Python'); // get listIterator for the list ListIterator namesIterator = nameList.listIterator(); // Traverse list using listiterator and print each item System.out.println('Contents of list using listIterator:'); while(namesIterator.hasNext()){ System.out.print(namesIterator.next() + ' '); } } }
산출:
ListIterator에 대해서는 나중에 자세히 설명하겠습니다.
이제 목록에서 수행 할 수 있지만 목록 인터페이스에서 제공되지 않는 메서드에 대해 수행 할 수있는 몇 가지 기타 작업에 대해 설명하겠습니다.
자바에서 목록 복사
한 목록의 요소를 다른 목록으로 복사하려면 Collections 프레임 워크에서 제공하는 copy () 메서드를 사용해야합니다.
Collections.copy () 메소드는 두 번째 인수로 제공된 목록의 모든 요소를 첫 번째 인수로 제공된 목록에 복사합니다. 다른 목록의 내용이 복사되는 목록은 복사 된 요소를 수용 할 수있을만큼 충분히 커야합니다.
목록이 충분히 크지 않으면 copy 메서드는 'indexOutOfBoundsEexception'을 발생시킵니다.
다음 프로그램은 한 목록의 내용을 다른 목록으로 복사합니다.
import java.util.*; public class Main { public static void main(String[] args) { //create first ArrayList object List aList_1 = new ArrayList(); //Add elements to first ArrayList aList_1.add('R'); aList_1.add('G'); aList_1.add('B'); //print the List System.out.println('The first list:' + aList_1); //create second ArrayList object List aList_2 = new ArrayList(); //Add elements to second Arraylist aList_2.add('Red'); aList_2.add('Green'); aList_2.add('Blue'); aList_2.add('Yellow'); aList_2.add('Brown'); System.out.println('The second list: ' + aList_2); //use Collections.copy() method to copy elements of first list to second list. Collections.copy(aList_2,aList_1); //print the resultant second Arraylist System.out.println('
The second list after copying first list to second list: ' + aList_2); } }
산출:
Java의 목록에서 중복 제거
주어진 목록에는 반복적 인 요소 나 중복이있을 수도 있고 없을 수도 있습니다. 작업중인 목록에 중복 요소가 있고 목록의 모든 고유 요소를 원하는 경우 Java에서 지원되는 목록에서 중복을 제거하는 두 가지 방법이 있습니다.
어떤 소프트웨어 테스트 인증이 가장 좋은지
자바 8 스트림 사용
목록에서 중복을 제거하는 첫 번째 방법은 Java 8 스트림에서 제공하는 구별 () 방법을 사용하는 것입니다. 여기서 중복을 포함하는 목록은 stream (). distinct 메서드를 호출하고 반환 값은 고유 한 요소 만있는 새 목록으로 변환됩니다.
다음 프로그램은 distinct () 메서드의 사용법을 보여줍니다.
import java.util.*; import java.util.stream.Collectors; class Main { public static void main(String[] args) { // original list List intlist = new ArrayList( Arrays.asList(1, 1, 1, 2, 2, 3, 3, 3, 4, 5, 5,6,5,3,4)); // Print the list System.out.println('Original ArrayList: ' + intlist); // using distinct() method of Java 8 stream remove duplicates from original List //and generate a new list without duplicates List distinct_list = intlist.stream().distinct() .collect(Collectors.toList()); // Print the new list System.out.println('ArrayList after removing duplicates: ' + distinct_list); } }
산출:
반복자 접근 방식 사용
반복기를 사용하여 목록에서 중복을 제거하는 것은 길고 원시적 인 접근 방식입니다. 이 접근 방식에서는 목록을 순회하고 모든 요소의 첫 번째 항목을 새 목록에 넣어야합니다. 모든 후속 요소가 중복 된 경우 확인됩니다.
아래 프로그램이이를 달성합니다.
import java.util.*; public class Main { public static void main(String args[]) { // create original list ArrayList aList = new ArrayList( Arrays.asList(1, 1, 1, 2, 2, 3, 3, 3, 4, 5, 5, 6, 5, 3, 4)); // Print the original list System.out.println('Original List: '+ aList); // Create a new list ArrayList new_List = new ArrayList(); // Traverse through the original list to remove duplicates for (Integer element : aList) { // check if element is present in new_List, else add it if (!new_List.contains(element)) { new_List.add(element); } } // Print the new list without duplicates System.out.println('List after removing duplicates: '+ new_List); } }
산출:
자주 묻는 질문
Q # 1) Java 목록에서 get 메소드는 무엇입니까?
대답: 목록의 Get 메소드는 색인을 기반으로 목록에서 특정 요소를 검색하는 데 사용됩니다. 필요한 인덱스를 get 메서드에 전달하면 get 메서드가 해당 인덱스의 요소 값을 반환합니다.
Q # 2) Java에서 toArray 메소드는 무엇입니까?
대답: toArray () 메서드는 목록의 배열 표현을 가져 오는 데 사용됩니다.
Q # 3) Java에서 목록을 어떻게 정렬합니까?
대답: Java에서는 목록의 정렬 방법을 사용하여 목록을 정렬 할 수 있습니다. 정렬 방법에 매개 변수로 전달되는 비교기 인터페이스를 사용하여 고유 한 정렬 기준을 전달할 수 있습니다.
컬렉션을 사용할 수도 있습니다. 목록을 정렬하는 정렬 방법입니다. 이 방법은 자연 순서에 따라 목록을 정렬합니다.
질문 # 4) Java에서 Arrays.asList ()는 무엇입니까?
대답: 배열의 'asList'메소드는 배열로 뒷받침되는 요소 목록을 반환합니다.
결론
이 자습서에서는 목록이 제공하는 모든 방법을 배웠습니다. Java 목록은 검색, 정렬 등 목록을 조작하고 처리 할 수있는 다양한 방법을 제공합니다. 여기에서는 적절한 프로그래밍 예제와 함께 각 방법을 설명했습니다.
다음 튜토리얼에서는 ListIterator에 대해 자세히 설명합니다.
=> 여기에서 간단한 Java 교육 시리즈를 살펴보십시오.