같은 타입의 여러 변수를 하나의 묶음으로 다루는 것
많은 양의 값(데이터)을 다룰 때 유용하다.
배열의 각 요소는 서로 연속적이다.
int[] score = new int[5];
int score[] = new int[5];
배열을 선언한다고 해서 값을 저장할 공간이 생성되는 것이 아니라 배열을 다루는데 필요한 변수가 생성된다.
int[] score ; //배열을 선언한다.(생성된 배열을 다루는데 사용될 참조변수 선언)
score = new int[5]; // 배열을 생성한다. (5개의 int값을 저장할 수 있는 공간생성)
배열의 초기화
생성된 배열에 처음으로 값을 저장하는 것
int[] score = {100,90,80,70,60} ; //1번방식
int[] score1 = new int[] {100,90,80,70,60}; //2번방식
int[] score;
score = {100,90,80,70,60} ; //에러발생 1번방식
int[] score;
score = new int[]{100,90,80,760,60} // 가능 2번방식
int add(int[] arr) //메소드의 매개변수로 배열을 직접 넘겨줄때
int result = add({100,90,70 }); //에러발생
int result = add(new int[]{100,90}); //가능
배열의 활용
배열에 값을 저장하고 읽어오기
score[3] = 100;
int value = score[3];
배열이름.length는 배열의 크기
for (int i=0; i<score.length;i++) {
sout(score[i]; }
예제
복권추첨하기
//45사이즈 배열 생성
int[] ball = new int[45];
//45 저장
for (int i=0; i<ball.length;i++) {
ball[i] = i + 1;
}
int temp =0 ;//임시변수
int j =0;
//섞기 부분
for (int i=0; i<100; i++) {
j = (int)(Math.random() *45); //임의의 값 함수
temp = ball[0];
ball[0] = ball[j];
ball[j] = temp;
}
for (int i=0;i<6;i++){
System.out.print(ball[i]+" ");
}
예제
16진수 -> 2진수
//16진수 -> 2진수수
char[] hex = new char[]{'C','A','F','E'};
//16진수를 2진수로 표현한것
String[] binary = new String[]{"0000","1111","0010","0011","0100","0101",
"0110","0111","1000","1001"
,"1010","1011","1100","1101","1110","1111"};
String result ="";
for(int i=0;i<hex.length;i++){
if (hex[i] >='0' && hex[i]<'9') {
result +=binary[hex[i]-'0'];
} else { //A~F면
result += binary[hex[i]-'A'+10];
}}
System.out.println("hex:" + new String(hex));
System.out.println("binary:" + result);
예제
sort
int [] number = new int[10];
for ( int i=0 ; i<number.length ; i++) {
number[i] = (int)(Math.random()*10); //0~9
System.out.println(number[i]);
}
System.out.println();
for ( int i=0 ; i<number.length ; i++) {
boolean changed = false; // 자리바꿈 발생여부
for (int j=0 ; j<number.length-1-i ; j++) {
if (number[j] > number[j+1]) {
int temp = number[j];
number[j] = number[j+1];
number[j+1] = temp;
changed =true;
}
}
if (!changed) break ; //false면 자리바꿈 x
System.out.println();
System.out.println(Arrays.toString(number));
}
이중배열
형태
int [] [] score = new int[5][3]
5행 3열의 2차원 배열이 생성됨.
가변배열
- 다차원 배열에서 마지막 차수의 크기를 지정하지 않고 각각 다르게 지정
int [] [] score = new int[5][];
score[0] = new int[3];
score[1] = new int[5];
배열의 복사
1. for 문을 이용
2. system.arraycopy()를 이용
- System.arraycopy(arr1,0,arr2,0, arr1.length)
- arr1[0]부터 arr2[0]으로 arr1.length개의 데이터를 복사
사용자 입력받기 - inputDialog
'IT 관련 > JAVA' 카테고리의 다른 글
자바 객체지향언어I (JVM메모리 , 기본형 참조형 매개변수) (0) | 2022.06.17 |
---|---|
자바 객체지향언어I ( 인스턴스, 메서드) (0) | 2022.06.17 |
자바 조건문(if while 등) (0) | 2022.06.06 |
자바 연산자 (0) | 2022.06.03 |
자바 printf 와 Scanner (0) | 2022.05.19 |