자바 기초 배열 초 상세 지식 총화
1.자바 언어 중의 배열 은 일종
이다.기본 데이터 형식 에 속 하지 않 습 니 다.배열 의 부 류 는Object
이다.2.배열 은 실제 적 으로 하나의 용기 로 여러 요 소 를 동시에 수용 할 수 있다.(배열 은 데이터 의 집합 이다)
3.배열 에'
'의 데 이 터 를 저장 할 수도 있 고'
'의 데 이 터 를 저장 할 수도 있다.4.배열 은 인용 형식 이기 때문에 배열 대상 은
에 저 장 됩 니 다.(셀 은 더미 에 저장 되 어 있다)5.배열 에'자바 대상'이 저장 되 어 있 으 면 실제 적 으로 대상 의'
( )
'이 저 장 됩 니 다.배열 에 자바 대상 을 직접 저장 할 수 없습니다.6.배열 이 생 성 되면 자바 에서 규정 합 니 다
.배열 길이 변경 불가)7.배열 의 분류:1 차원 배열,2 차원 배열,3 차원 배열,다 차원 배열...(1 차원 배열 이 많 고 2 차원 배열 은 가끔 사용 합 니 다!)
8.모든 배열 대상 은
length
속성(자바 자체)이 있 고 배열 의 요소 의 개 수 를 가 져 옵 니 다.9.자바 의 배열 은 배열 의 요소
를 요구 합 니 다.예 를 들 어 int 형식 배열 은 int 형식 만 저장 할 수 있 고 Person 형식 배열 은 Person 형식 만 저장 할 수 있 습 니 다.
10.배열 이 메모리 에 저 장 될 때 배열 의 요소 메모리 주소(저 장 된 모든 요 소 는 규칙 적 으로 배열 되 어 있 습 니 다)는 연속 적 입 니 다.
。(배열 특성)11.모든 배열 은'첫 번 째 작은 사각형 의 메모리 주소'를 전체 배열 대상 의 메모리 주소 로 합 니 다.
(배열 의 첫 번 째 요소 의 메모리 주 소 는 전체 배열 대상 의 메모리 주소 입 니 다.)
12.배열 의 모든 요 소 는 아래 표 시 된 것 이 고 아래 표 시 는 0 에서 시작 하여 1 로 증가한다.마지막 요소 의 아래 표 시 는:length-1 입 니 다.
13.배열 이라는 데이터 구조의 장점 과 단점 은 무엇 입 니까?
첫째:모든 요소 의 메모리 주 소 는 공간 저장 소 에서 연속 적 입 니 다.
둘째:모든 요소 의 유형 이 같 기 때문에 공간 을 차지 하 는 크기 가 같 습 니 다.
셋째,첫 번 째 요소 의 메모리 주 소 를 알 고 모든 요소 가 공간 을 차지 하 는 크기 를 알 고 아래 표 시 를 알 기 때문에 수학 표현 식 을 통 해 아래 표 시 된 요소 의 메모리 주 소 를 계산 할 수 있 습 니 다.메모리 주 소 를 통 해 요 소 를 직접 찾 기 때문에 배열 의 검색 효율 이 가장 높다.
주의:
배열 에 100 개의 요 소 를 저장 하거나 100 만 개의 요 소 를 저장 하면 요소 조회/검색 에 있어 효율 이 같 습 니 다.
배열 에서 요 소 를 찾 을 때 하나 도 찾 지 않 고 수학 식 으로 계산 되 기 때 문 입 니 다.계산 해 내다
메모리 주소
둘째:배열 은 빅 데 이 터 를 저장 할 수 없습니다.메모리 공간 에서 매우 큰 연속 메모리 공간 을 찾기 가 매우 어렵 기 때문이다.
주의:
배열 의 마지막 요소 의 첨삭 은 효율 적 인 영향 을 미 치지 않 는 다.
14.1 차원 배열 을 어떻게 설명/정의 합 니까?
문법 형식:
int[] array1;
double[] array2;
boolean[] array3;
String[] array4;
Object[] array5;
15.어떻게 1 차원 배열 을 초기 화 합 니까?두 가지 방식 을 포함한다.
1 차원 배열,
1 차원 배열 이다.정적 초기 화 문법 형식:
자바 스타일:
int[] array = {100, 2100, 300, 55};
C++스타일:
int array[] = {100, 2100, 300, 55};
동적 초기 화 문법 형식:자바 스타일:
int[] array = new int[5]; // 5 。
// 5 int , 0
String[] names = new String[6]; // 6 String , null。
C++스타일:
int array[] = new int[5]; // 5 。
// 5 int , 0
String names[] = new String[6]; // 6 String , null。
주의:동적 초기 화 를 사용 하면 배열 은 기본 값 을 부여 합 니 다!
주의:
c++와 의 차이
c++
//
int a[10];
int a[] = {1, 2, 3, 4};
int a[100] = {1, 2, 3, 4};
//
int *a = new int[10];
16.1 차원 배열 의 특정한 요소 의 값 을 어떻게 수정 합 니까?문법 형식:
[ ] = ;
eg.
a[1] = 100;
17.언제 정적 초기 화 방식 을 사용 하고 동적 초기 화 방식 을 사용 합 니까?
public void print(int[] num){
for (int i = 0; i < num.length; i++){
System.out.println(num[i]);
}
}
:
int[] a = {1, 2, 3, 4};
print(a);
이렇게 전 삼 할 수도 있다.
print(new int[]{1, 2, 3, 4});
new int[]{1, 2, 3, 4}
괜찮아.length
배열 대상 이 야!19.배열 확장(효율 이 낮 음)
방법:(System 클래스 의 방법)
/**
*@src
*@srcPos
*@dest
*@destPos
*@length
*/
static void arraycopy(Object src, int srcPos, Object dest, int destPos, int length)
eg.
int[] a = {1, 2, 3, 4};
int[] b = new int [10];
System.arraycopy(a, 0, b, 0, aa.length);
// a 0 , b 0 , a
2.2 차원 배열1.2 차원 배열 은 사실 하나
이 고 이 1 차원 배열 에서 의 모든 요 소 는 1 차원 배열 이다.2,3 차원 배열 은 무엇 입 니까?
3 차원 배열 은 특수 한 2 차원 배열 로 이 2 차원 배열 에서 모든 요 소 는 1 차원 배열 이다.
실제 개발 에서 가장 많이 사용 되 는 것 은 1 차원 배열 이다.2 차원 배열 도 거의 사용 되 지 않 는 다.3 차원 배열 은 거의 사용 하지 않 는 다.
3.2 차원 배열 정적 초기 화
int[][] array = {
{1,1,1},
{2,3,4,5},
{0,0,0,0},
{2,3,4,5},
{2,3,4,5},
{2,3,4,5},
{2,3,4,5}
};
4.2 차원 배열 동적 초기 화eg.
int[][] array = new int[3][4];
5.2 차원 배열 의 요소 에 대한:읽 기와 수정.
a[ ][ ]
a[0][0]: 1 1 。
a[3][100]: 4 101 。
주의:a[3][100]에 게 그 중에서 a[3]는 하나의 전체 이다.100]은 앞의 a[3]집행 이 끝 난 결과 이 고 100 을 표시 합 니 다.
6.방법 형 삼 은 2 차원 배열 로 어떻게 전 삼 합 니까?
public void print(int[][] num){
for (int i = 0; i < num.length; i++){
for (int j = 0; j < num[i].length; j++){
System.out.println(num[i][j]);
}
}
}
:
int[][] a = {{1,2,3,4},{4,5,6,76},{1,23,4}};
print(a);
이렇게 전 삼 할 수도 있다.
print(new int[][]{{1,2,3,4},{4,5,6,76},{1,23,4}});
new int[][]{{1,2,3,4},{4,5,6,76},{1,23,4}}
괜찮아.length
배열 대상 이 야!3.총화
1.배열 의 장점 과 단점,그리고 왜 그런 지 이해 해 야 한다.
첫째:공간 저장 소 에서 메모리 주 소 는 연속 적 입 니 다.
둘째:모든 요소 가 차지 하 는 공간 크기 가 같 습 니 다.
셋째:첫 번 째 요소 의 메모리 주 소 를 알 고 있 습 니 다.
넷 째:아래 표 시 를 통 해 편 이 량 을 계산 할 수 있다.
수학 표현 식 을 통 해 아래 표 시 된 위치 에 있 는 요소 의 메모리 주 소 를 빠르게 계산 할 수 있 습 니 다.
메모리 주 소 를 직접 통 해 위 치 를 정 하면 효율 이 매우 높다.
장점:검색 효율 이 높다.
단점:무 작위 삭제 효율 이 낮 아 배열 이 빅 데 이 터 를 저장 할 수 없다.
주의:배열 의 마지막 요소 의 삭제 효율 은 영향 을 받 지 않 습 니 다.
2.1 차원 배열 의 정적 초기 화 와 동적 초기 화
정적 초기 화:
int[] arr = {1,2,3,4};
Object[] objs = {new Object(), new Object(), new Object()};
동적 초기 화:
int[] arr = new int[4]; // 4 , 0
Object[] objs = new Object[4]; // 4 , null
3.1 차원 배열 의 옮 겨 다 니 기
for(int i = 0; i < arr.length; i++){
System.out.println(arr[i]);
}
4.2 차원 배열 의 정적 초기 화 와 동적 초기 화정적 초기 화:
int[][] arr = {
{1,2,34},
{54,4,34,3},
{2,34,4,5}
};
Object[][] arr = {
{new Object(),new Object()},
{new Object(),new Object()},
{new Object(),new Object(),new Object()}
};
동적 초기 화:
int[][] arr = new int[3][4];
Object[][] arr = new Object[4][4];
Animal[][] arr = new Animal[3][4];
// Person , Person , Person 。
Person[][] arr = new Person[2][2];
....
5.2 차원 배열 의 옮 겨 다 니 기
for(int i = 0; i < arr.length; i++){ // for 。
// for 。
for(int j = 0; j < arr[i].length; j++){
System.out.print(arr[i][j]);
}
// 。
System.out.println();
}
6.배열 의 복사:System.array copy()방법의 사용배열 은 길이 가 확정 되면 변 하지 않 는 다 는 특징 이 있다.
그래서 배열 의 길이 가 부족 할 때 확장 이 필요 하 다.확장 체 제 는 큰 배열 을 새로 만 들 고 작은 배열 의 데 이 터 를 큰 배열 로 복사 한 다음 에 작은 배열 의 대상 이 쓰레기 로 회수 되 는 것 이다.
보충:
배열 길이 0:
int[] f = {};// 0
System.out.println(f.length);//0
int[] g = new int[0];// 0
System.out.println(g.length);//0
int[] h = null;
//System.out.println(h.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에 따라 라이센스가 부여됩니다.