introduction java arrays
이 자습서에서는 Java의 배열 개념을 소개합니다. 또한 Java Arrays에서 길이, 데이터 유형, 복제, 복사, 정렬 등과 같은 관련 항목을 도입했습니다.
프로그래밍에서는 항상 데이터를 처리합니다. 데이터는 메모리 위치에 저장되어야하며 수시로 액세스하고 그에 따라 처리하려면 이름을 지정해야합니다. 이것은 변수에 의해 수행됩니다.
따라서 값 10을 메모리에 저장하려면 int 유형의 변수를 선언하고 값을 int num = 10으로 저장합니다.
이제 프로그램 요구 사항이 int 유형의 변수 10 개가 필요하다고 가정합니다.
이 경우 다음과 같이 int 유형의 변수 10 개를 선언해야합니다.
자바는 값으로 배열을 메소드에 전달
int a1;
int a2;
int a3;
int a4;
int a5;
int a6;
int a7;
int a8;
int a9;
int a10;
위의 선언은 프로그래머에게 불필요한 유지 관리 부담을 줄 것입니다. 너무 많은 변수를 선언하는 대신 단일 변수를 선언 한 다음이 10 개의 값을 모두이 변수에 할당하는 것은 어떻습니까? 이것이 우리가 배열을 정의하고 여기에 값을 할당 할 때 수행 할 작업입니다.
Java의 배열부터 시작하겠습니다.
학습 내용 :
자바 어레이
배열은 동일한 유형의 데이터 요소를 순차적으로 보유하는 데 사용되는 데이터 구조 일뿐입니다. 위의 예에서 10 개의 변수 정의를 단일 변수로 변경하고 첨자를 사용하여 10 개의 값을 모두 저장할 수 있습니다.
아래 주어진 방식으로합시다.
A (0) = 1;
A (1) = 2;
A (2) = 3;
A (3) = 4;
A (4) = 5;
A (5) = 6;
A (6) = 7;
A (7) = 8;
A (8) = 9;
A (9) = 10;
인덱스 기반 변수에 10 개의 값을 모두 저장했습니다. 첫 번째 인덱스는 0부터 시작합니다. 따라서 첫 번째 값은 0입니다.일인덱스이고 마지막 값은 9입니다.일인덱스. 이러한 인덱스를 첨자라고도합니다.
컴퓨터 메모리에서 위의 어레이 A는 다음과 같이 표시됩니다.
이제 배열을 동일한 데이터 유형의 요소 모음이고 인접한 메모리 위치에 저장되는 변수로 정의 할 수 있습니다. 배열의 크기는 선언시 지정되므로 크기가 고정됩니다.
이 자습서에서 논의 할 배열은 고정 크기 또는 정적 배열입니다. Java는 또한 크기를 즉시 변경할 수있는“ArrayList”라는 동적 배열을 지원합니다. ArrayList에 대해서는 나중에 자세히 설명하겠습니다.
Java의 배열 특성 중 일부는 다음과 같습니다.
- Java에서 Array는 동적으로 생성 된 클래스에서 인스턴스화 된 객체입니다.
- 내부적으로 Java 배열은 Serializable 및 Cloneable 인터페이스를 구현합니다.
- Java 배열에는 상위 클래스로 객체 클래스도 있습니다.
- 내장 및 파생 유형 값을 Java 배열에 저장할 수 있습니다.
- C / C ++에서와 같이 sizeof가 아닌 길이 멤버를 사용하여 배열의 길이를 얻을 수 있습니다.
- Java는 단일 및 다차원 배열을 허용합니다.
이 튜토리얼에서는 우리가 진행할 모든 배열 개념을 독자에게 소개합니다.
이 시리즈에서 Java Arrays에 대해 다룹니다.
시작하자!!
자바 어레이 – 생성 및 초기화
프로그램에서 사용하려면 배열을 만들어야합니다. 배열 만들기에는 배열에 포함 할 요소의 수뿐만 아니라 배열이 보유 할 요소의 데이터 유형 지정이 포함됩니다.
배열을 초기화 할 수있는 다양한 방법과 다양한 방법으로 배열을 만드는 방법에 대해 설명합니다.
어레이 생성 및 초기화에 사용되는 방법 중 하나의 예가 아래에 나와 있습니다.
public class Main { public static void main(String() args) { int() myArray; myArray = new int(5); myArray(0) = 1; myArray(1) = 3; System.out.println('myArray(0):' + myArray(0)); System.out.println('myArray(1):' + myArray(1)); System.out.println('myArray(2):' + myArray(2)); System.out.println('myArray(3):' + myArray(3)); System.out.println('myArray(4):' + myArray(4)); } }
산출:
이 프로그램에서는 int 배열을 선언 한 다음 new를 사용하여 인스턴스화했습니다. 그런 다음 인덱스 0과 1의 요소를 각각 값 1과 3으로 초기화했습니다.
마지막으로 배열의 모든 요소를 인쇄합니다. 초기화하지 않은 요소는 배열 유형이 int이므로 기본값이 0입니다.
Java 배열의 인쇄 요소
프로그램에서 배열이 사용되면 표시되도록 바인딩됩니다. 배열 요소를 표시하기 위해 for 루프, forEach 루프, Arrays 클래스의 toString 메소드 등과 같은 특수 메소드를 사용합니다.이 항목에는 배열 요소를 인쇄하는 데 사용되는 모든 다양한 메소드가 포함됩니다.
다음은 배열 요소를 출력하기 위해‘Arrays’클래스의 toString 메소드를 사용하는 프로그램입니다.
import java.util.*; public class Main { public static void main(String() args) { int() myArray; myArray = new int(5); myArray(0) = 1; myArray(1) = 3; System.out.println('Array Elements : ' + Arrays.toString(myArray)); } }
산출:
Java의 배열 길이
배열의 길이는 배열에있는 요소의 수를 나타냅니다. 배열의 길이를 얻기 위해 'sizeof'연산자를 사용하는 C / C ++와 달리 Java 배열에는 'length'속성이 있습니다. 나중에이 속성에 대해 자세히 알아볼 것입니다.
다음은 배열의 길이를 표시하는 프로그램입니다.
import java.util.*; public class Main { public static void main(String() args) { int() myArray = {1,3,5,7,9,11}; System.out.println('Size of the given array : ' + myArray.length); } }
산출:
이 프로그램에서는 배열 리터럴을 사용하여 배열을 초기화 한 다음 length 속성을 사용하여 배열의 크기 / 길이를 표시합니다.
자바 어레이 데이터 유형
모든 데이터 유형의 배열을 가질 수 있습니다. 이 주제에서는 다양한 데이터 유형과 정의를 사용하는 배열을 살펴 봅니다.
아래 프로그램에서는 int 및 string 형 배열을 정의하고 각각의 내용을 표시했습니다. .
import java.util.*; public class Main { public static void main(String() args) { int() myArray = {1,3,5,7,9,11}; String() strArray = {'one','two','three','four','five'}; System.out.println('Elements of int array : ' + Arrays.toString(myArray)); System.out.println('Elements of String array : ' + Arrays.toString(strArray)); } }
산출:
배열에 요소 추가
배열에 요소를 추가하는 것은 중요한 작업입니다. Java의 배열은 정적이고 고정 된 길이입니다. 따라서 배열에 새 요소를 추가하려면 특정 작업 집합을 제공해야합니다. 여기서 배열에 요소를 추가하는 다양한 방법에 대해 설명합니다.
배열에 요소를 추가하는 방법 중 하나는 ArrayList를 중간 구조로 사용하는 것입니다. 배열을 ArrayList로 변환합니다. 그런 다음 ArrayList에 요소를 추가하고 ArrayList를 다시 배열로 변경합니다.
아래 프로그램은이 구현을 보여줍니다.
import java.util.*; class Main { public static void main(String() args) { int n = 10; int i; Integer intArray() = { 1, 2, 3, 4, 5 }; System.out.println('Original Array:
' + Arrays.toString(intArray)); int num = 10; Listintlist = new ArrayList(Arrays.asList(intArray)); intlist.add(num); intArray = intlist.toArray(intArray); System.out.println('
Array after adding ' + num + '
' + Arrays.toString(intArray)); } }
산출:
각도기 angularjs 앱을위한 엔드 투 엔드 테스트 프레임 워크
배열에서 요소 제거 / 삭제
배열에서 요소를 제거하는 것도 또 다른 주요 작업입니다. Java는 요소를 직접 제거하는 것을 허용하지 않습니다. 그래서 우리는 이것을하기 위해 다른 옵션을 사용합니다.
다음은 방법 중 하나의 구현입니다. ArrayList를 사용하여 배열에서 요소 제거 .
import java.util.*; importjava.util.stream.*; class Main { public static void main(String() args) { int() tensArray = { 10,20,30,40,50}; System.out.println('Input Array: '+ Arrays.toString(tensArray)); int index = 1; System.out.println('Index to be removed: ' + index); if (tensArray == null || index = tensArray.length) { System.out.println('No element to delete'); } ListtensList = IntStream.of(tensArray).boxed().collect(Collectors.toList()); tensList.remove(index); tensArray = tensList.stream().mapToInt(Integer::intValue).toArray(); System.out.println('Array after deleting element at '+ index + ':
'+ Arrays.toString(tensArray)); } }
산출:
여기서 먼저 배열을 ArrayList로 변환 한 다음 ArrayList 메서드 remove를 사용하여 요소를 제거합니다. 그 후 ArrayList를 다시 배열로 변환하고 변경된 배열을 출력합니다.
Java에서 배열 복사
한 배열에서 다른 배열로 배열 요소를 복사하는 몇 가지 작업에 대해 설명합니다. 또한 배열의 얕고 깊은 복사에 대해서도 설명합니다.
이러한 메소드 중 하나는 java.util 패키지의 Arrays 클래스의 copyOf () 메소드입니다. .
import java.util.*; public class Main { public static void main(String() args) { int() intArray = {10,15,20,25,30,35,40}; int array_len = intArray.length; System.out.println('Original Array:' + Arrays.toString(intArray)); int() copy_intArray = Arrays.copyOf(intArray, array_len); System.out.println('Copied Array:' + Arrays.toString(copy_intArray)); } }
산출:
Arrays 클래스의 'copyOf'메서드는 인수로 지정된 배열을 길이와 함께 다른 배열로 복사합니다.
Java에서 어레이 복제
Java에서 배열의 복제본을 만들 수도 있습니다. Java는 ArrayUtils 패키지에서 이에 대한 메소드를 제공합니다. 여기에서 복제에 대해 자세히 알아볼 것입니다.
Java에서 배열을 복제하는 간단한 예제를 구현해 보겠습니다.
import java.util.*; class Main { public static void main(String args()) { int num_Array() = {5,10,15,20,25,30}; int clone_Array() = num_Array.clone(); System.out.println('Original num_Array:' + Arrays.toString(num_Array)); System.out.println('Cloned num_Array:'+ Arrays.toString(clone_Array)); } }
산출:
따라서 복제는 다른 방법을 사용하여 복사하는 것입니다.
Java에서 배열 정렬
배열 요소를 정렬하거나 오름차순 또는 내림차순으로 정렬하는 것은 중요한 작업 중 하나입니다. 대부분의 응용 프로그램은 데이터를 정렬해야합니다. Java는 배열에 대한 필터 정렬을 제공합니다. 정렬에서 자세히 설명하겠습니다.
다음은 간단한 예입니다. 에스 Arrays.sort () 메서드를 사용하여 Jave에서 배열 정렬 .
import java.util.Arrays; public class Main { public static void main(String() args) { int() num_Array = {115,32,56,78,94,108,100,63}; System.out.println('Original Array: ' + Arrays.toString(num_Array)); Arrays.sort(num_Array); System.out.println('Sorted Array: ' + Arrays.toString(num_Array)); } }
산출:
위와 같이 Arrays 클래스의 sort 메서드는 배열 요소를 오름차순으로 정렬합니다.
자바에서 배열 반전
요소의 순서를 뒤집는 것도 배열에 의해 제공되지 않습니다. 제거와 마찬가지로 약간의 전환 작업을 수행하고 결과를 얻어야합니다. 이 항목에서는 배열을 뒤집는 방법을 살펴 봅니다.
다음 프로그램은 배열 반전 구현 .
import java.util.*; public class Main { public static void main(String() args) { Integer () even_Arrayr = {2,4,6,8,10}; System.out.println('Original Array:' + Arrays.asList(even_Arrayr)); Collections.reverse(Arrays.asList(even_Arrayr)); System.out.println('Reversed Array:' + Arrays.asList(even_Arrayr)); } }
산출:
ArrayIndexOutOfBounds 예외
지정된 길이 또는 음수 인덱스를 초과하는 배열 요소에 액세스하려고하면 컴파일러에서 'ArrayIndexOutOfBounds'예외가 발생합니다. 관련 항목에서이 예외에 대해 자세히 알아볼 것입니다.
import java.util.ArrayList; public class Main { public static void main(String() args) { ArrayListmyList = new ArrayList(); myList.add('one'); myList.add('two'); System.out.println(myList.get(2)); } }
산출 :
위의 프로그램에서 두 개의 항목이있는 ArrayList가 있고 존재하지 않는 인덱스 2의 항목을 가져 오려고합니다. 따라서 프로그램은 IndexOutofBounds 예외를 제공합니다.
자바 문자열 배열 및 다양한 방법
Java에서 지원하는 모든 데이터 유형 중에서 가장 중요한 것은 String입니다. 따라서 문자열 유형 배열도 특별한 논의가 필요합니다. string 형 배열에 포함 된 데이터는 대부분 텍스트이므로 텍스트를 조작 할 수있는 다양한 방법이 제공됩니다.
import java.util.ArrayList; public class Main { public static void main(String() args) { String() rgb = {'Red', 'Green', 'Blue'}; System.out.println('The string array elements:'); for (String item: rgb) { System.out.print(item + ' '); } } }
산출:
이것은 문자열 배열을위한 기본 프로그램입니다. 방금 문자열 배열을 선언하고 forEach 루프를 사용하여 그 내용을 표시했습니다.
자바의 다차원 배열
지금까지는 1 차원 배열 만 보았습니다. Java는 또한 주로 행과 열로 배열 된 요소가있는 다차원 배열을 지원합니다. Java의 배열은 배열의 각 요소가 다른 배열을 포함 할 수 있으므로 더욱 복잡해집니다.
여기서는 특정 작업과 함께 Java의 다차원 배열을 살펴 보겠습니다.
2 차원 배열의 예를 구현해 보겠습니다.
class Main { public static void main(String args()) { // declaring and initializing 2D array int array_2d()() = { {1,2,3},{4,5,6},{7,8,9} }; System.out.println('The two-dimensional array is as follows:'); for (int i=0; i<3 ; i++) { for (int j=0; j < 3 ; j++) System.out.print(array_2d(i)(j) + ' '); System.out.println(); } }
산출:
객체의 Java 배열
기본 유형을 저장하는 것 외에도 Java 배열은 객체를 저장할 수도 있습니다. 이 항목에서는 개체 배열의 몇 가지 예를 살펴 봅니다.
한 가지 예가 아래에 나와 있습니다.
class Main{ public static void main(String args()){ Test testobj() = new Test(2) ; testobj(0) = new Test(); testobj(1) = new Test(); testobj(0).setData(1,3); testobj(1).setData(2,4); System.out.println('For Array Element 0 (testobj(0)):'); testobj(0).displayData(); System.out.println('For Array Element 1 (testobj(1)):'); testobj(1).displayData(); } } class Test{ int val1; int val2; public void setData(int c,int d){ val1=c; val2=d; } public void displayData(){ System.out.print('val1 ='+val1 + '; val2 ='+val2 + '
'); } }
산출:
요소를 객체로 포함하는 배열을 가질 수 있습니다. 위 프로그램에는 Test 클래스의 객체 배열이 있습니다. 각 개체에 대해 개별적으로 멤버 함수를 호출하여 값을 설정하고 표시합니다.
Java에서 배열 반환
같은 방법으로 모든 메서드에서 변수를 반환하면 배열도 반환 할 수 있습니다. 마찬가지로 배열을 메서드에 전달할 수 있습니다. 이 두 가지 가능성에 대해서는 여기에서 예를 들어 설명합니다.
일반적으로 배열에 대한 참조는 메소드로 /로부터 전달됩니다.
다음 프로그램은 Java에서 배열의 반환을 보여줍니다. .
class Main { static int() add_sub(int val1, int val2) { int() result = new int(2); result(0) = val1 + val2; result(1) = val1 - val2; return result; } public static void main(String() args) { int() result = add_sub(10, 5); System.out.println('val1 + val2 = ' + result(0)); System.out.println('val1 - val2 = ' + result(1)); } }
산출:
위의 프로그램에서 우리는 두 숫자의 더하기와 빼기의 두 가지 작업을 수행합니다. 각 작업의 결과는 배열의 요소로 저장됩니다. 그런 다음 전체 배열 참조가 호출 함수로 반환됩니다.
최고의 이메일 제공 업체는 무엇입니까
자바 어레이 클래스
Java 배열 클래스는 배열을 조작하는 기능을 제공하는 java.util 패키지의 클래스입니다. 배열 복사, 정렬, 배열을 문자열로 변환 등과 같은 많은 기능을 제공합니다.
자바 일반 배열
우리는 이미 유형 독립 엔티티 인 Java에서 제네릭을 보았습니다. Java 배열은 유형에 독립적으로 정의 할 수있는 일반 일 수 있습니다. 그러나 일반 코드는 바이트 코드가 생성 될 때 사용할 수 없으므로 요소의 유형을 추론하기 어렵고 배열은 런타임에 유지됩니다.
따라서 배열 대신 제네릭이 필요할 때마다 Java 컬렉션 프레임 워크에서 목록으로 전환합니다.
그러나 하나 이상의 메서드를 사용하여 일반적인 배열 구조를 가질 수도 있습니다. 여기에서 이러한 방법을 살펴 보겠습니다.
다음은 객체 배열을 사용하는 방법 중 하나의 예입니다.
import java.util.Arrays; class Main { public static void main(String() args) { final int length = 5; //integer array object from Generic_Array class Generic_ArrayintArray = new Generic_Array(length); for (int i = 0; i 산출:
따라서 위의 프로그램에서 객체 배열을 요소로 사용하는 일반 배열 클래스를 작성하고 배열 객체를 가져 오거나 설정하기위한 get / set 메소드를 작성했습니다. 또한 Arrays 클래스의 toString 메서드를 재정의했습니다. Main 클래스에서 Integer 및 String 유형의 제네릭 배열 클래스의 두 개체를 만들고 적절한 값을 할당합니다.
자바에서 들쭉날쭉 한 배열
들쭉날쭉 한 배열은 크기가 다른 각 멤버 배열이있는 다차원 배열입니다. 들쭉날쭉 한 배열은 배열 배열의 예이기도합니다.
다음 프로그램은 Jagged 배열의 예를 보여줍니다.
class Main { public static void main(String() args) { int jagged_array()() = new int(2)(); jagged_array(0) = new int(4); jagged_array(1) = new int(2); for (int i=0; i 산출:
위 프로그램에는 2D 배열이 있습니다. 첫 번째 배열 차원은 4이고 두 번째 차원은 2입니다. 출력에는 Jagged 배열의 두 차원 내용이 표시됩니다.
Java 8의 배열
Java 8은 Java의 주요 릴리스이므로 배열에 대한 변경 사항을 살펴볼 것입니다. 예를 들어, 배열의 스트림은 Java 8에서 도입되었습니다.
Java에서 배열 가져 오기
‘java.util’패키지의‘Arrays’클래스를 가져 와서 Java 배열에 대한 추가 기능을 포함 할 수 있습니다.
더 많은 기능을 위해 arrayutils 패키지를 가져올 수도 있습니다. 이전 예제에서 가져 오기 기능에 대해 더 많은 지식을 얻었을 것입니다.
Java Array API 및 문서
Java 배열 API는 Java 배열에서 작동하는 모든 함수의 모음입니다. 여기서는이 API (응용 프로그래밍 인터페이스)를 살펴 보겠습니다.
마지막으로 Java 배열에 대한 설명과 함께 모든 속성 및 메서드를 나열했습니다. 이것은 빠른 참조로 독자에게 도움이 될 것입니다.
자주 묻는 질문
Q # 1) 배열은 Java에서 원시 데이터 유형입니까?
대답: 아니요. 배열은 원시 데이터 유형이 아니지만 배열은 인접한 위치에 동일한 데이터 유형의 요소를 보유하는 컨테이너 객체입니다.
Q # 2) 배열은 Java에서 참조 유형입니까?
대답: 예. 배열은 개체의 컨테이너이며 참조로 처리됩니다.
Q # 3) Java에서 배열 크기를 늘릴 수 있습니까?
대답: 아니요. 배열을 선언하고 크기로 인스턴스화합니다. 일단 지정되면 배열의 크기를 변경할 수 없습니다.
결론
이 자습서에서는 Java의 배열 개념을 소개했습니다. Java 어레이와 관련된 주요 주제에 대해 논의했습니다.
후속 자습서에서는 이러한 배열 관련 주제를 Java로 자세히 살펴 봅니다.
행복한 학습 !!
추천 도서