logo

Java의 배열 클래스

그만큼 배열 수업 java.util 패키지 의 일부입니다 Java 컬렉션 프레임워크 . 이 클래스는 동적으로 생성하고 액세스할 수 있는 정적 메서드를 제공합니다. 자바 배열 . 정적 메소드와 Object 클래스의 메소드로만 구성됩니다. 이 클래스의 메서드는 클래스 이름 자체에서 사용할 수 있습니다.

클래스 계층 구조는 다음과 같습니다.

java.lang.Object ? java.util.Arrays>

괴짜, 이제 배열에 대한 작업을 선언, 초기화 및 계산할 수 있는데 왜 Java 배열 클래스가 필요한지 궁금할 것입니다. 이에 대한 대답은 이 클래스의 메소드 내에 있지만 실제로 이러한 함수는 프로그래머가 배열을 사용하여 지평을 확장하는 데 도움이 되기 때문에 더 자세히 논의할 것입니다. 루프 다음과 같은 배열에서 일부 작업을 수행하는 데 사용됩니다.



  • 특정 값으로 배열을 채웁니다.
  • 배열을 정렬합니다.
  • 배열에서 검색합니다.
  • 그리고 더 많은.

여기서 Arrays 클래스는 루프를 사용하지 않고 이러한 작업을 직접 수행하는 데 사용할 수 있는 여러 정적 메서드를 제공하므로 코드가 매우 짧고 최적화됩니다.

통사론: 클래스 선언

public class Arrays extends Object>

통사론: 배열을 사용하려면

Arrays.;>

Java 배열 클래스의 메서드

java.util 패키지의 Arrays 클래스에는 배열 채우기, 정렬, 검색 등에 사용할 수 있는 여러 정적 메서드가 포함되어 있습니다. 이제 아래 표 형식으로 표시된 이 클래스의 메서드에 대해 설명하겠습니다.

행동 양식 수행된 작업
asList() 지정된 배열이 지원하는 고정 크기 목록을 반환합니다.
바이너리검색() 이진 검색 알고리즘을 사용하여 배열에서 지정된 요소를 검색합니다.
바이너리 검색(배열, fromIndex, toIndex, 키, 비교기) 이진 검색 알고리즘을 사용하여 지정된 배열의 범위에서 지정된 개체를 검색합니다.
비교(배열 1, 배열 2) 매개변수로 전달된 두 배열을 사전순으로 비교합니다.
copyOf(originalArray, newLength) 복사본이 지정된 길이를 갖도록 지정된 배열을 기본값으로 잘라내거나 채워서(필요한 경우) 복사합니다.
copyOfRange(originalArray, fromIndex, endIndex) 지정된 배열의 지정된 범위를 새 배열에 복사합니다.
deepEquals(Object[] a1, Object[] a2) 지정된 두 배열이 서로 완전히 동일한 경우 true를 반환합니다.
deepHashCode(Object[] a) 지정된 배열의 깊은 내용을 기반으로 해시 코드를 반환합니다.
deepToString(Object[] a) 지정된 배열의 전체 내용에 대한 문자열 표현을 반환합니다.
같음(배열1, 배열2) 두 배열이 동일한지 여부를 확인합니다.
fill(originalArray, fillValue) 이 채우기 값을 이 배열의 각 인덱스에 할당합니다.
해시코드(원본배열) 이 배열 인스턴스의 정수 hashCode를 반환합니다.
불일치(배열1, 배열2) 지정된 두 배열 사이에서 일치하지 않는 첫 번째 요소의 인덱스를 찾아 반환합니다.
parallelPrefix(originalArray, fromIndex, endIndex, FunctionalOperator) 지정된 기능 연산자를 사용하여 지정된 배열 범위에 대해 ParallelPrefix를 수행합니다.
parallelPrefix(originalArray, 연산자) 지정된 기능 연산자를 사용하여 완전한 배열에 대해 parallelPrefix를 수행합니다.
parallelSetAll(originalArray, FunctionalGenerator) 제공된 생성기 함수를 사용하여 이 배열의 모든 요소를 ​​병렬로 설정합니다.
병렬 정렬(원래 배열) 병렬 정렬을 사용하여 지정된 배열을 정렬합니다.
setAll(originalArray, FunctionalGenerator) 제공된 생성기 함수를 사용하여 지정된 배열의 모든 요소를 ​​설정합니다.
정렬(원본 배열) 전체 배열을 오름차순으로 정렬합니다.
sort(originalArray, fromIndex, endIndex) 지정된 배열 범위를 오름차순으로 정렬합니다.
sort(T[] a, int fromIndex, int toIndex, 비교기 c) 지정된 비교기에 의해 유도된 순서에 따라 지정된 개체 배열의 지정된 범위를 정렬합니다.
sort(T[] a, 비교기 c) 지정된 비교기에 의해 유도된 순서에 따라 지정된 개체 배열을 정렬합니다.
분할기(originalArray) 지정된 모든 배열을 포함하는 Spliterator를 반환합니다.
분할기(originalArray, fromIndex, endIndex) 지정된 배열의 지정된 범위를 포함하는 배열 유형의 Spliterator를 반환합니다.
스트림(원래 배열) 지정된 배열을 소스로 사용하여 순차 스트림을 반환합니다.
toString(원래 배열) 이 배열 내용의 문자열 표현을 반환합니다. 문자열 표현은 대괄호([])로 묶인 배열 요소 목록으로 구성됩니다. 인접한 요소는 쉼표와 공백 문자로 구분됩니다. 요소는 String.valueOf() 함수에 의해 문자열로 변환됩니다.

구현:

예시 1: asList() 방법

자바




// Java Program to Demonstrate Arrays Class> // Via asList() method> > // Importing Arrays utility class> // from java.util package> import> java.util.Arrays;> > // Main class> class> GFG {> > >// Main driver method> >public> static> void> main(String[] args)> >{> >// Get the Array> >int> intArr[] = {>10>,>20>,>15>,>22>,>35> };> > >// To convert the elements as List> >System.out.println(>'Integer Array as List: '> >+ Arrays.asList(intArr));> >}> }>

>

>

산출

Integer Array as List: [[I@2f4d3709]>

예 2: 바이너리검색() 방법

이 방법은 이진 검색 알고리즘을 사용하여 배열에서 지정된 요소를 검색합니다.

자바




// Java Program to Demonstrate Arrays Class> // Via binarySearch() method> > // Importing Arrays utility class> // from java.util package> import> java.util.Arrays;> > // Main class> public> class> GFG {> > >// Main driver method> >public> static> void> main(String[] args)> >{> > >// Get the Array> >int> intArr[] = {>10>,>20>,>15>,>22>,>35> };> > >Arrays.sort(intArr);> > >int> intKey =>22>;> > >// Print the key and corresponding index> >System.out.println(> >intKey +>' found at index = '> >+ Arrays.binarySearch(intArr, intKey));> >}> }>

>

>

산출

22 found at index = 3>

예시 3: BinarySearch(array, fromIndex, toIndex, key, Comparator) 메서드

이 방법은 이진 검색 알고리즘을 사용하여 지정된 배열의 범위에서 지정된 객체를 검색합니다.

자바




// Java program to demonstrate> // Arrays.binarySearch() method> > import> java.util.Arrays;> > public> class> Main {> >public> static> void> main(String[] args)> >{> > >// Get the Array> >int> intArr[] = {>10>,>20>,>15>,>22>,>35> };> > >Arrays.sort(intArr);> > >int> intKey =>22>;> > >System.out.println(> >intKey> >+>' found at index = '> >+ Arrays> >.binarySearch(intArr,>1>,>3>, intKey));> >}> }>

>

>

산출

22 found at index = -4>

예시 4: 비교(배열 1, 배열 2) 메서드

자바




// Java program to demonstrate> // Arrays.compare() method> > import> java.util.Arrays;> > public> class> Main {> >public> static> void> main(String[] args)> >{> > >// Get the Array> >int> intArr[] = {>10>,>20>,>15>,>22>,>35> };> > >// Get the second Array> >int> intArr1[] = {>10>,>15>,>22> };> > >// To compare both arrays> >System.out.println(>'Integer Arrays on comparison: '> >+ Arrays.compare(intArr, intArr1));> >}> }>

>

>

산출

Integer Arrays on comparison: 1>

예시 5: CompareUnsigned(배열 1, 배열 2) 메서드

자바




// Java program to demonstrate> // Arrays.compareUnsigned() method> > import> java.util.Arrays;> > public> class> Main {> >public> static> void> main(String[] args)> >{> > >// Get the Arrays> >int> intArr[] = {>10>,>20>,>15>,>22>,>35> };> > >// Get the second Arrays> >int> intArr1[] = {>10>,>15>,>22> };> > >// To compare both arrays> >System.out.println(>'Integer Arrays on comparison: '> >+ Arrays.compareUnsigned(intArr, intArr1));> >}> }>

>

>

산출

Integer Arrays on comparison: 1>

예시 6: copyOf(originalArray, newLength) 메서드

자바




// Java program to demonstrate> // Arrays.copyOf() method> > import> java.util.Arrays;> > public> class> Main {> >public> static> void> main(String[] args)> >{> > >// Get the Array> >int> intArr[] = {>10>,>20>,>15>,>22>,>35> };> > >// To print the elements in one line> >System.out.println(>'Integer Array: '> >+ Arrays.toString(intArr));> > >System.out.println(>' New Arrays by copyOf: '>);> > >System.out.println(>'Integer Array: '> >+ Arrays.toString(> >Arrays.copyOf(intArr,>10>)));> >}> }>

>

>

산출

Integer Array: [10, 20, 15, 22, 35] New Arrays by copyOf: Integer Array: [10, 20, 15, 22, 35, 0, 0, 0, 0, 0]>

예시 7: copyOfRange(originalArray, fromIndex, endIndex) 메서드

자바




// Java program to demonstrate> // Arrays.copyOfRange() method> > import> java.util.Arrays;> > public> class> Main {> >public> static> void> main(String[] args)> >{> > >// Get the Array> >int> intArr[] = {>10>,>20>,>15>,>22>,>35> };> > >// To print the elements in one line> >System.out.println(>'Integer Array: '> >+ Arrays.toString(intArr));> > >System.out.println(>' New Arrays by copyOfRange: '>);> > >// To copy the array into an array of new length> >System.out.println(>'Integer Array: '> >+ Arrays.toString(> >Arrays.copyOfRange(intArr,>1>,>3>)));> >}> }>

>

>

산출

Integer Array: [10, 20, 15, 22, 35] New Arrays by copyOfRange: Integer Array: [20, 15]>

예시 8: deepEquals(Object[] a1, Object[] a2) 메서드

자바




// Java program to demonstrate> // Arrays.deepEquals() method> > import> java.util.Arrays;> > public> class> Main {> >public> static> void> main(String[] args)> >{> > >// Get the Arrays> >int> intArr[][] = { {>10>,>20>,>15>,>22>,>35> } };> > >// Get the second Arrays> >int> intArr1[][] = { {>10>,>15>,>22> } };> > >// To compare both arrays> >System.out.println(>'Integer Arrays on comparison: '> >+ Arrays.deepEquals(intArr, intArr1));> >}> }>

>

>

산출

Integer Arrays on comparison: false>

예시 9: deepHashCode(Object[] a) 메서드

자바




// Java program to demonstrate> // Arrays.deepHashCode() method> > import> java.util.Arrays;> > public> class> Main {> >public> static> void> main(String[] args)> >{> > >// Get the Array> >int> intArr[][] = { {>10>,>20>,>15>,>22>,>35> } };> > >// To get the dep hashCode of the arrays> >System.out.println(>'Integer Array: '> >+ Arrays.deepHashCode(intArr));> >}> }>

>

>

산출

Integer Array: 38475344>

예시 10: deepToString(Object[] a) 메서드

자바




// Java program to demonstrate> // Arrays.deepToString() method> > import> java.util.Arrays;> > public> class> Main {> >public> static> void> main(String[] args)> >{> > >// Get the Array> >int> intArr[][] = { {>10>,>20>,>15>,>22>,>35> } };> > >// To get the deep String of the arrays> >System.out.println(>'Integer Array: '> >+ Arrays.deepToString(intArr));> >}> }>

>

>

산출

Integer Array: [[10, 20, 15, 22, 35]]>

예 11: equals(array1, array2) 메서드

자바




// Java program to demonstrate> // Arrays.equals() method> > import> java.util.Arrays;> > public> class> Main {> >public> static> void> main(String[] args)> >{> > >// Get the Arrays> >int> intArr[] = {>10>,>20>,>15>,>22>,>35> };> > >// Get the second Arrays> >int> intArr1[] = {>10>,>15>,>22> };> > >// To compare both arrays> >System.out.println(>'Integer Arrays on comparison: '> >+ Arrays.equals(intArr, intArr1));> >}> }>

>

>

자바 인스턴스
산출

Integer Arrays on comparison: false>

실시예 12: fill(originalArray, fillValue) 방법

자바




// Java program to demonstrate> // Arrays.fill() method> > import> java.util.Arrays;> > public> class> Main {> >public> static> void> main(String[] args)> >{> > >// Get the Arrays> >int> intArr[] = {>10>,>20>,>15>,>22>,>35> };> > >int> intKey =>22>;> > >Arrays.fill(intArr, intKey);> > >// To fill the arrays> >System.out.println(>'Integer Array on filling: '> >+ Arrays.toString(intArr));> >}> }>

>

>

산출

Integer Array on filling: [22, 22, 22, 22, 22]>

실시예 13: hashCode(originalArray) 메서드

자바




// Java program to demonstrate> // Arrays.hashCode() method> > import> java.util.Arrays;> > public> class> Main {> >public> static> void> main(String[] args)> >{> > >// Get the Array> >int> intArr[] = {>10>,>20>,>15>,>22>,>35> };> > >// To get the hashCode of the arrays> >System.out.println(>'Integer Array: '> >+ Arrays.hashCode(intArr));> >}> }>

>

>

산출

Integer Array: 38475313>

실시예 14: mismatch(array1, array2) 메서드

자바




// Java program to demonstrate> // Arrays.mismatch() method> > import> java.util.Arrays;> > public> class> Main {> >public> static> void> main(String[] args)> >{> > >// Get the Arrays> >int> intArr[] = {>10>,>20>,>15>,>22>,>35> };> > >// Get the second Arrays> >int> intArr1[] = {>10>,>15>,>22> };> > >// To compare both arrays> >System.out.println(>'The element mismatched at index: '> >+ Arrays.mismatch(intArr, intArr1));> >}> }>

e-r 모델 다이어그램
>

>

산출

The element mismatched at index: 1>

실시예 15: parallelSort(originalArray) 메서드

자바




// Java program to demonstrate> // Arrays.parallelSort() method> > // Importing Arrays class from> // java.util package> import> java.util.Arrays;> > // Main class> public> class> Main {> >public> static> void> main(String[] args)> >{> > >// Get the Array> >int> intArr[] = {>10>,>20>,>15>,>22>,>35> };> > >// To sort the array using parallelSort> >Arrays.parallelSort(intArr);> > >System.out.println(>'Integer Array: '> >+ Arrays.toString(intArr));> >}> }>

>

>

산출

Integer Array: [10, 15, 20, 22, 35]>

실시예 16: 정렬(원본 배열) 방법

자바




// Java program to demonstrate> // Arrays.sort() method> > import> java.util.Arrays;> > public> class> Main {> >public> static> void> main(String[] args)> >{> > >// Get the Array> >int> intArr[] = {>10>,>20>,>15>,>22>,>35> };> > >// To sort the array using normal sort-> >Arrays.sort(intArr);> > >System.out.println(>'Integer Array: '> >+ Arrays.toString(intArr));> >}> }>

>

>

산출

Integer Array: [10, 15, 20, 22, 35]>

실시예 17: sort(originalArray, fromIndex, endIndex) 방법

자바




// Java program to demonstrate> // Arrays.sort() method> > import> java.util.Arrays;> > public> class> Main {> >public> static> void> main(String[] args)> >{> > >// Get the Array> >int> intArr[] = {>10>,>20>,>15>,>22>,>35> };> > >// To sort the array using normal sort> >Arrays.sort(intArr,>1>,>3>);> > >System.out.println(>'Integer Array: '> >+ Arrays.toString(intArr));> >}> }>

>

>

산출

Integer Array: [10, 15, 20, 22, 35]>

실시예 18: sort(T[] a, int fromIndex, int toIndex, 비교기 c) 방법

자바




// Java program to demonstrate working of Comparator> // interface> import> java.util.*;> import> java.lang.*;> import> java.io.*;> > // A class to represent a student.> class> Student {> >int> rollno;> >String name, address;> > >// Constructor> >public> Student(>int> rollno, String name,> >String address)> >{> >this>.rollno = rollno;> >this>.name = name;> >this>.address = address;> >}> > >// Used to print student details in main()> >public> String toString()> >{> >return> this>.rollno +>' '> >+>this>.name +>' '> >+>this>.address;> >}> }> > class> Sortbyroll>implements> Comparator {> >// Used for sorting in ascending order of> >// roll number> >public> int> compare(Student a, Student b)> >{> >return> a.rollno - b.rollno;> >}> }> > // Driver class> class> Main {> >public> static> void> main(String[] args)> >{> >Student[] arr = {>new> Student(>111>,>'bbbb'>,>'london'>),> >new> Student(>131>,>'aaaa'>,>'nyc'>),> >new> Student(>121>,>'cccc'>,>'jaipur'>) };> > >System.out.println(>'Unsorted'>);> >for> (>int> i =>0>; i System.out.println(arr[i]); Arrays.sort(arr, 1, 2, new Sortbyroll()); System.out.println(' Sorted by rollno'); for (int i = 0; i System.out.println(arr[i]); } }>

>

>

산출

Unsorted 111 bbbb london 131 aaaa nyc 121 cccc jaipur Sorted by rollno 111 bbbb london 131 aaaa nyc 121 cccc jaipur>

실시예 19: sort(T[] a, 비교기 c) 방법

자바




// Java program to demonstrate working of Comparator> // interface> import> java.util.*;> import> java.lang.*;> import> java.io.*;> > // A class to represent a student.> class> Student {> >int> rollno;> >String name, address;> > >// Constructor> >public> Student(>int> rollno, String name,> >String address)> >{> >this>.rollno = rollno;> >this>.name = name;> >this>.address = address;> >}> > >// Used to print student details in main()> >public> String toString()> >{> >return> this>.rollno +>' '> >+>this>.name +>' '> >+>this>.address;> >}> }> > class> Sortbyroll>implements> Comparator {> > >// Used for sorting in ascending order of> >// roll number> >public> int> compare(Student a, Student b)> >{> >return> a.rollno - b.rollno;> >}> }> > // Driver class> class> Main {> >public> static> void> main(String[] args)> >{> >Student[] arr = {>new> Student(>111>,>'bbbb'>,>'london'>),> >new> Student(>131>,>'aaaa'>,>'nyc'>),> >new> Student(>121>,>'cccc'>,>'jaipur'>) };> > >System.out.println(>'Unsorted'>);> >for> (>int> i =>0>; i System.out.println(arr[i]); Arrays.sort(arr, new Sortbyroll()); System.out.println(' Sorted by rollno'); for (int i = 0; i System.out.println(arr[i]); } }>

>

>

산출

Unsorted 111 bbbb london 131 aaaa nyc 121 cccc jaipur Sorted by rollno 111 bbbb london 121 cccc jaipur 131 aaaa nyc>

예 20: Spliterator(originalArray) 메서드

자바




// Java program to demonstrate> // Arrays.spliterator() method> > import> java.util.Arrays;> > public> class> Main {> >public> static> void> main(String[] args)> >{> > >// Get the Array> >int> intArr[] = {>10>,>20>,>15>,>22>,>35> };> > >// To sort the array using normal sort> >System.out.println(>'Integer Array: '> >+ Arrays.spliterator(intArr));> >}> }>

>

>

산출

Integer Array: java.util.Spliterators$IntArraySpliterator@4e50df2e>

실시예 21: Spliterator(originalArray, fromIndex, endIndex) 메서드

자바




// Java program to demonstrate> // Arrays.spliterator() method> > import> java.util.Arrays;> > public> class> Main {> >public> static> void> main(String[] args)> >{> > >// Get the Array> >int> intArr[] = {>10>,>20>,>15>,>22>,>35> };> > >// To sort the array using normal sort> >System.out.println(>'Integer Array: '> >+ Arrays.spliterator(intArr,>1>,>3>));> >}> }>

>

>

산출

Integer Array: java.util.Spliterators$IntArraySpliterator@4e50df2e>

실시예 22: stream(originalArray) 메서드

자바




// Java program to demonstrate> // Arrays.stream() method> > import> java.util.Arrays;> > public> class> Main {> >public> static> void> main(String[] args)> >{> > >// Get the Array> >int> intArr[] = {>10>,>20>,>15>,>22>,>35> };> > >// To get the Stream from the array> >System.out.println(>'Integer Array: '> >+ Arrays.stream(intArr));> >}> }>

>

>

산출

Integer Array: java.util.stream.IntPipeline$Head@7291c18f>

실시예 23: toString(원본 배열) 방법

자바




// Java program to demonstrate> // Arrays.toString() method> > import> java.util.Arrays;> > public> class> Main {> >public> static> void> main(String[] args)> >{> > >// Get the Array> >int> intArr[] = {>10>,>20>,>15>,>22>,>35> };> > >// To print the elements in one line> >System.out.println(>'Integer Array: '> >+ Arrays.toString(intArr));> >}> }>

>

>

산출

Integer Array: [10, 20, 15, 22, 35]>