일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
Tags
- Hash
- Brute Force
- Two Points
- String
- 스토어드 프로시저
- Trie
- Stored Procedure
- union find
- 다익스트라
- SQL
- binary search
- MYSQL
- Dijkstra
- 이진탐색
- DP
- 그래프
- two pointer
Archives
- Today
- Total
codingfarm
배열(Array) 본문
배열 생성
- Java에서 정수형 배열을 만드는 방법은 아래와 같다.
type[] varname;
int[] score;
string[] name;
type varname[];
int score[];
String name[];
- 크게 2가지 방법이 지원되며 가능하면 전자의 방법을 사용하기를 추천한다.
int[] score = new int[5];
배열 초기화
- 기본형 배열의 초기화
int[] score = new int[5];
score[0] = 100;
score[1] = 90;
score[2] = 80;
score[3] = 70;
score[4] = 60;
- 참조형 배열의 초기화
String[] name = new String[3];
name[0] = new String("Kim");
name[1] = new String("Park");
name[2] = new String("Yi");
- 요소를 하나씩 초기화 하기는 매우 까다롭다.
- 그래서 자바는 아래처럼 선언과 동시에 한번에 초기화하는 방법을 제공한다.
int[] score = { 100, 90, 80, 70, 60 };
int[] score = new int[]{ 100, 90, 80, 70, 60 };
String[] name = { new String("Kim"), new String("Park"), new String("Yi") };
String[] name = { "Kim", "Park", "Yi" };
String[] name = new String[]{ new String("Kim"), new String("Park"), new String("Yi") };
- 선언과 초기화를 따로 할 경우 아래의 방법을 쓴다.
int[] score;
score = { 100, 90, 80, 70, 60 }; //에러 발생!!
score = new int[]{ 100, 90, 80, 70, 60 }; //OK
- 함수의 argument로 int 배열을 받을 경우
int add(int[] arr){/*내용 생략*/}
int result = add({ 100, 90, 80, 70, 60 }); //에러 발생!!
int result = add(new int[]{ 100, 90, 80, 70, 60 }); //OK
- length 필드로 배열의 크기를 알 수 있다.
int[] score = {100, 90, 80, 70, 60 };
for(int i = 0; i < score.length; i++){
System.out.println(score[i]);
}
다차원 배열
선언 방법 | 선언 예 |
type[][] varname; | int[][] score; |
type varname[][]; | int score[][]; |
type[] varname[]; | int[] score[]; |
int[][] score = new int[5][3]; //5행 3열의 2차원 배열을 생성한다.
- 선언과 동시에 초기화 방법은 아래와 같다.
int[][] score = new int[][] { // new int[][] 는 생략가능
{100, 100, 100}
, {100, 100, 100}
, {100, 100, 100}
, {100, 100, 100}
, {100, 100, 100}
};
- 아래처럼 각 요소의 length로 길이를 확인 가능하다.
for (int i=0; i < score.length ; i++){
for(int j=0; j< score[i].length; j++){
score[i][j] = 10;
}
}
가변 배열
- 각 부분배열의 크기를 따로 설정할 수 있다.
int[][] score = new int[5][];
score[0] = new int[4];
score[1] = new int[3];
score[2] = new int[2];
score[3] = new int[2];
score[4] = new int[3];
- 중괄호를 이용해 생성과 동시에 초기화도 가능하다.
int[][] score = {
, {100, 100, 100, 100}
, {20, 20, 20}
, {30, 30}
, {40, 40}
, {50, 50, 50}
};
배열의 복사
- arraycopy()를 사용하면 간단하게 배열을 복사할 수 있다.
int[] arr1 = {0, 1, 2, 3, 4};
int[] arr2 = new int[5];
System.arraycopy(arr1, 0, arr2, 0, arr1.length); //arr1[0] 에서 arr2[0]으로 arr1.length개의 데이터를 복사한다.
- 복사하려는 내용보다 여유공간이 적으면 ArrayIndexOutOfBoundsException이 발생한다.
'Programming Language > JAVA' 카테고리의 다른 글
변수 (0) | 2020.11.02 |
---|---|
객체지향 프로그래밍 (0) | 2020.11.01 |
JVM의 메모리구조 (0) | 2020.10.11 |
JDK(Java Development Kit) (0) | 2020.10.10 |
개요 (0) | 2020.10.10 |
Comments