프로그래밍/JAVA
11 1차원 배열
윤지(●'◡'●)
2021. 4. 1. 10:08
반응형
배열이란?
쉽게 말하자면, 같은 자료형의 여러 변수를 나열해 놓은 것이다. 배열을 구성하는 각각의 값을 배열 요소(element)라고 하며, 배열에서의 위치를 가리키는 숫자는 인덱스(index)라고 합니다.
이러한, 배열을 사용하는 이유는 아래와 같다.
1. 여러 값들을 하나의 이름과 인덱스로 관리하기 위해서
2. 규칙성이 없는 값에 규칙성을 부여하기 위해서
3. 많은 양의 데이터를 다룰 때 유용해서
배열의 선언
1. 값과 배열의 길이를 모두 알고 있을 때
자료형[] 배열명 = {값1,값2,값3......};
2. 값과 배열의 길이를 모두 모를 때
자료형[] 배열명 = null;
3. 값을 모르고 배열의 길이만 알 때
자료형[] 배열명 = new 자료형[칸수];
배열의 인덱스 번호
위의 배열의 정의에서 잠깐 언급했던 배열의 인덱스 번호에대해 자세히 이야기 해보려 한다.
실제 값들이 저장되어 있는 공간이 할당되면 이름은 존재하지 않고 주소값만 존재한다.
따라서 시작 주소값을 배열명 변수가 갖고 있고, 주소연산(주소이동)을 통해 다음 주소값으로 이동할 수 있다.
시작 주소에서 이동한 횟수(연산된 정수)가 인덱스 번호가 되고 첫번째 방은 배열명이 갖고 있는 주소에서 0번 옮겨야 하므로 인덱스(index) 번호는 0부터 시작한다.
배열의 인덱스 번호가 몇번까지 있는지, 즉 배열의 길이를 알고 싶을 때에는 다음 수식을 사용하여 구할 수 있습니다.
배열이름.length
자, 이제 위의 방법을 통해 배열을 선언하고 사용해보자 (●'◡'●)
//첫번째 방법
int [] arData1 = {10,20,30,40,50};
System.out.println(arData1[0]); // arData1의 0번째 요소를 출력
arData1[0] = 100; // arData1의 0번째에 100의 값 저장
for (int i = 0; i < arData1.length; i++) { // 0부터 arData1의 길이만큼(0~4) 반복
System.out.println(arData1[i]);
}
//두번째 방법
//배열 생성시 0으로 초기화
int [] arData2 = new int[5]; // 5칸의 공간을 가진 배열 생성
for (int i = 0; i < arData2.length; i++) { // 0부터 arData2의 길이만큼 반복
arData2[i] = (i+1)*10; // i번째에 (i+1)*10의 값 저장 ( 10,20,30,40,50 저장 )
System.out.println(arData2[i]);
}
//세번째 방법
//배열명 변수에 연결된 칸이 없으므로(실제 값들이 저장될 공간이 생성되지 않았으므로)
int [] arData3 = null;
//값들이 저장될 칸부터 생성하기
arData3 = new int[5];
for (int i = 0; i < arData3.length; i++) {
arData3[i] = (i+1)*10;
System.out.println(arData3[i]);
}
.split
.split은 설정한 기준점에 따라 나눌 때 사용하며 아래와 같이 사용한다.
"문자열1".split("문자열2")
문자열1을 문자열2 기준으로 나누기
문자열을 나눈 결과는 2개 이상이 나올 수 있으므로 통채로가 나뉜 값들이 담겨있는 String 배열이다.
아래와 같이 사용할 수 있다 :)
String msg = "Hello/Java";
String [] datas = msg.split("/"); // "/"를 기준으로 msg를 나눠 datas배열에 저장
System.out.println(datas[0]); // Hello 출력
System.out.println(datas[1]); // Java 출력
반응형