자바 언어 배열
17441 단어 Java
배열 은 같은 유형의 변 수 를 저장 하 는 집합 이다.
목차
double[] a;
int[] b;
첫 번 째 줄 은
double
형식의 배열 변수 a
를 설명 하여 이 배열 에 대한 인용 을 표시 합 니 다.두 번 째 줄 은 int
유형의 배열 변수 b
를 설명 했다.성명 배열 도 C \ C + + 의 스타일 형식 을 사용 할 수 있 습 니 다. 예 를 들 어
double a[];
int b[];
하지만 첫 번 째 쓰 기 를 추천 합 니 다.
성명 의 변수 가 데 이 터 를 인용 하지 않 으 면 변수 값 은
null
입 니 다.new
연산 자 를 사용 하여 배열 을 만 들 고 배열 의 참조 값 을 변수 에 부여 합 니 다. 예 를 들 어a = new double[10];
new
연산 자 를 사용 하여 10 크기 double
형식의 배열 을 만 들 고 이 를 변수 a
에 할당 합 니 다.배열 변수의 성명, 배열 생 성, 할당 은 하나의 문장 으로 쓸 수 있 습 니 다. 예 를 들 어
double[] a = new double[10];
length
배열 의 크기 를 가 져 올 수 있 습 니 다. 예 를 들 어int len = a.length;
a.length
배열 a
의 크기 를 가 져 왔 습 니 다.char
형 이 라면 기본 값 은 \u0000
입 니 다.boolean
형 이 라면 기본 값 false
입 니 다.a.length-1
이다.즉, a[0]
은 수조 a
의 첫 번 째 원소 이 고 a[9]
는 마지막 원소 이다.배열 요 소 를 가 져 오 면 기본 변수 로 조작 할 수 있 습 니 다.double[] a = new double[3];
a[0] = 2.3;
a[1] = 5.5;
a[2] = 4.5;
성명, 생 성, 초기 화 를 한 문장 에 넣 을 수도 있 습 니 다. 예 를 들 어
double[] a = {2.3, 5.5, 4.5};
상술 한 문 구 는 성명 과 할당 두 문장 으로 나 눌 수 없 으 며, 그렇지 않 으 면 잘못 된다.
foreach
순환 foreach
순환 은 for
순환 의 축소 형식 으로 볼 수 있 고 아래 표 시 를 사용 하지 않 고 배열 요 소 를 순서대로 방문 할 수 있다. 예 를 들 어for (double e: a)
System.out.println(e);
상기 문 구 는 인쇄 배열
a
의 모든 요소 e
의 값 입 니 다.a
을 배열 b
에 복사 하려 면 배열 a
의 모든 요 소 를 배열 b
에 복사 해 야 합 니 다. 예 를 들 어 배열 변수 할당 형식 을 사용 할 수 없습니다.b = a;
이 쓰 기 는 배열 의 복 사 를 완성 할 수 없습니다.이 는
a
와 b
이 두 배열 의 주 소 를 표시 하고 복사 문 구 를 사용 하면 a
과 b
이 같은 주소 공간 을 가리 키 기 때문이다.이 밖 에
System
중의 정적 방법 arraycopy
을 사용 하여 배열 복 제 를 완성 할 수 있다.System.arraycopy(sourceArray, srcPos, targetArray, tarPos, length);
그 중에서 매개 변수
Pos
와 tarPos
는 각각 소스 배열 sourceArray
과 목표 배열 targetArray
의 시작 위 치 를 나타 내 고 매개 변수 length
는 복사 해 야 할 요소 의 개 수 를 지정 한다.이 방법 을 사용 하기 전에 대상 배열 을 만들어 저장 공간 을 할당 해 야 합 니 다.
java.util.Arrays
클래스 에는 sort
와 parallelSort
방법 이 포함 되 어 있 으 며, 배열 의 모든 것 을 정렬 할 수 있 습 니 다. 예 를 들 어java.util.Arrays.sort(a);
java.util.Arrays.parallelSort(a);
배열 부분 을 정렬 할 수도 있 습 니 다. 예 를 들 어
java.util.Arrays.sort(a, 1, 7);
java.util.Arrays.parallelSort(a, 1, 7);
a[1]
에서 a[7 - 1]
까지 의 범 위 를 정렬 하 는 것 을 나타 낸다.컴퓨터 에 여러 개의 프로세서 가 있 을 때
parallelSort()
방법 은 더욱 효율 적 이다.java.util.Arrays
류 중 2 분 검색 binarySearch()
방법 도 있다. 이 방법 을 사용 하 는 전 제 는 배열 이 반드시 오름차 순 으로 배열 되 어야 한 다 는 것 이다. 예 를 들 어java.util.Arrays.binarySearch(a, 2.3);
배열
a
에서 값 이 2.3 인 요 소 를 찾 는 것 을 나타 내 고 이 요소 가 존재 하면 이 요소 가 배열 에 있 는 아래 표 시 를 되 돌려 줍 니 다.존재 하지 않 으 면 - 1 로 돌아 갑 니 다.java.util.Arrays
류 에서 equals()
방법 을 제공 하여 두 배열 의 일치 여 부 를 판단 한다. 예 를 들 어java.util.Arrays.equals(a, b);
상기 코드 는 배열
a
과 b
이 같 는 지 판단 하고 똑 같이 true 로 돌아 갑 니 다.그렇지 않 으 면 false 로 돌아 갑 니 다.java.util.Arrays
클래스 에서 fill()
방법 을 제공 하여 배열 의 전부 또는 부분 을 채 웁 니 다. 예 를 들 어java.util.Arrays.fill(a, 5);
배열
a
의 모든 요소 에 5 대 값 을 부여 하 는 것 을 나타 낸다.java.util.Arrays.fill(a, 1, 7, 5);
5 를
a[1]
에서 a[7 - 1]
까지 의 모든 요소 에 할당 하 는 것 을 나타 낸다.java.util.Arrays
클래스 에서 문자열 을 되 돌려 주 는 방법 을 제공 합 니 다. 예 를 들 어 배열 의 모든 요 소 를 대표 합 니 다.java.util.Arrays.toString(a);
2 차원 배열
2 차원 배열 은 1 차원 배열 의 배열 로 볼 수 있 고 2 차원 배열 의 모든 요 소 는 1 차원 배열 이다.
int[][] matrix;
아래 와 같은 방식 으로 도 사용 할 수 있 지만 추천 하지 않 습 니 다.
int matrix[][];
toString()
연산 자 를 사용 하여 생 성 합 니 다. 예 를 들 어matrix = new int[3][3];
2 차원 배열 은 줄 과 열 아래 표 시 를 통 해 접근 하고 아래 표 시 를 이용 하여 초기 화 합 니 다. 예 를 들 어
matrix[0][0] = 2;
matrix[2][1] = 1;
다음 과 같은 방식 으로 배열 을 설명 하고 생 성 하 며 초기 화 할 수 있 습 니 다.
int[][] matrix = {{1, 2, 3}, {2, 3, 4}, {5, 6, 7}};
new
은 2 차원 배열 의 요소 갯 수 이자 줄 수 이다.반면 matrix.length
, matrix[0].length
등 은 각각 0 번 째 와 1 번 째 1 차원 배열 요소 의 개 수 를 나타 낸다.int[][] matrix = {{1, 2, 3}, {1, 2}, {1}};
matrix[1].length
에서 첫 번 째 원소 의 길이 matrix
는 3 이다.두 번 째 원소 와 세 번 째 원 소 는 각각 2 와 1 이다.이렇게 각 줄 의 길이 가 다른 배열 을 톱니 배열 이 라 고 한다.2 차원 길이 가 확실 하지 않 을 때 배열 에서 설명 할 때 2 차원 길이 값 을 공석 할 수 있 습 니 다. 예 를 들 어
int[][] matrix = new matrix[3][];
matrix[0].length
다음 에 첫 번 째 하 표 값 을 지정 해 야 하 며 두 개의 하 표 값 이 모두 비어 있 는 것 을 허락 하지 않 습 니 다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
JPA + QueryDSL 계층형 댓글, 대댓글 구현(2)이번엔 전편에 이어서 계층형 댓글, 대댓글을 다시 리팩토링해볼 예정이다. 이전 게시글에서는 계층형 댓글, 대댓글을 구현은 되었지만 N+1 문제가 있었다. 이번에는 그 N+1 문제를 해결해 볼 것이다. 위의 로직은 이...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.