안녕안녕! 오늘은 Java로 하루를 시작하자
이건 생각보다 Deep하게 가야할 친구이기도 하고,
또한 필드에서도 잘못 이해하는 부분들이 많으니
한번 잘 짚고 넘어가보자!
배열 (Array)
배열이라고 하는 친구인데..!
예를 들어 설명을 해볼까해
만약 친구 100명이 있는데,
그 친구들의 이름과 전화번호를 적어야해,
이걸 A4용지에 적어내려야하지..
요즘이야 연락처가 유실될 일이 없긴 하지만..!
여기서 너는 2개 중에서
원하는 스타일로 일처리를 할 수가 있는데
1. 한장당 한명씩 이름과 전화번호를 분류하여 A4용지 200장에 쓰기,
2. A4 용지 한장에 나열하여 이름, 전화번호를 100줄 쓰기
아 물론 쌩고생을 하기 싫은건 잘 알지만,
꼭 해야한다면 어떤걸 택할거야 ?
이건 누가봐도 2번일거야
"그래도 한번 어려운거 해놔야 좋은거 아님!!?"
응 아냐
이걸 프로그램 적으로 말을 해보자면
이걸 다~~~변수로 만들어 처리하느냐
아니면 배열로 감싸냐!
그게 A4 200장과
A4 한장의 차이인거지
코드를 보면서 설명을 할게
package project;
public class Main {
public static void main(String[] args) {
int one = 1;
int two = 2;
int three = 3;
int four = 4;
int five = 5;
int six = 6;
int seven = 7;
int eight = 8;
int nine = 9;
int ten = 10;
System.out.println(one + "번");
System.out.println(two + "번");
System.out.println(three + "번");
System.out.println(four + "번");
System.out.println(five + "번");
System.out.println(six + "번");
System.out.println(seven + "번");
System.out.println(eight + "번");
System.out.println(nine + "번");
System.out.println(ten + "번");
}
}
대략 이런식이 되겠지?
10개라면 10개의 변수를 만들어주어야하는꼴인거야
그럼 나중에.. 줄이 어~~~엄청 길어지고
보기에도 짜증날거야 ㅋㅋ
이걸 배열로 줄여본다면?
package project;
public class Main {
public static void main(String[] args) {
int arr[] = {1,2,3,4,5,6,7,8,9,10};
for(int i = 0; i < arr.length; i++)
System.out.println(arr[i] + "번");
}
}
이 두개의 결과는
똑같은 결과인데, 코드길이에서 확 차이가 나지!
"그래도 1,2,3,4,5,6,7 ... 언제 쓰고 있냐!!"
그거야 뭐 나중에 DB에서 쿼리로 끌고 와서
그 결과값을 배열에 넣고 그 결과값 중 필요한 컬럼값만 땡겨오면 되니 blahblah
어쨋든..!
배열은 불필요한 변수선언을 생략해주는 고마운 녀석인데
즉 바구니 같은 친구야
변수로 선언시, 같은 타입의 친구들을 변수를 선언하고, 메모리에 올려서
그 공간을 활용해 담는다면,
배열의 경우, 같은 데이터 타입을 가진 연속으로 이루어진 메모리 공간으로 이루어진 자료 묶음인데
변수의 묶음 단위라고 보면 되는거지!
배열은 주로
변수타입 변수명[]
이렇게 중괄호로 선언을 해주는데
배열안에 무언가를 담을때는
int arr[] = {1,2,3,4,5,6,7,8,9,10};
이렇게 대괄호를 활용해주지
또한 [ ] 이 친구의 경우에 따라서
arr[ 0 ][ 1 ]
이렇게 중괄호를 두개를 써줄 수가 있는데 이 개념이 좀 중요해
이건 바구니가 두개야! 의 개념이 아니라
하나의 바구니에 첫번째 구역을 말해
쉽게 설명해서
우리가 쓰는 컴퓨터에 하드디스크를
파티션을 나누어서 C:\ , D:\를 나눠둔거라고 보면 좀 쉬울것같아
예를 들면
arr[SSD][C드라이브] = {게임,응용프로그램};
arr[SSD][D드라이브] = {사진,음악};
하나의 SSD에서 이렇게 분할이 되는것을 말해
즉, 결국 한 공간에서 그 구역을 나눠서 사용한다라고 보면되는거야
절대로 하나는 SSD 하나는 HDD가 아니라는거지
(저렇게 한글로 쓰지는않아)
그리고.. 위에는 [ ] 이게 하나였는데
지금은 [ ][ ] 이렇게 두개지?
이거에 따라서 1차원 배열, 2차원 배열, 다차원으로 나누어져있어
이 부분에 대해서는 나중에 설명해 줄게 ㅎㅎ
우리가 위 소스에 보면 arr라는 배열에 1~10이란 숫자가 들어가있어
그럼 여기서 1만 출력 하려면? 어떻게 해야할까?
package project;
public class Main {
public static void main(String[] args) {
int arr[] = {1,2,3,4,5,6,7,8,9,10};
System.out.println(arr[1]);
}
}
이렇게 해주는게 맞을까?
정답은 아니야.
왜냐면 배열이라는 녀석은
순서가 0부터 시작을 하거든.
컴퓨터의 주소상, 1로 시작할 수가 엄써!
즉 우리가 생각 하는것에 -1이라고 보면되는거야
만약 8을 출력한다고하면?
System.out.println(arr[7]);
이렇게 해주어야겠지 ?
이 숫자가 무엇이냐..!
그건 다음시간에 충분히 더 설명을 해줄게! ㅎㅎ
그럼 오늘은 여기까지만 하구 ! 다음에 보자규
그럼 20000!
'Lang [ ] java = { > Java' 카테고리의 다른 글
[Java] 가비지컬렉터를 알아보자! (garbage collector) (4) | 2020.04.02 |
---|---|
[Java] 배열 Array 더 파보기! (길이, 기본값 ) (3) | 2020.04.01 |
[Java] 형변환! ( Casting || Type Conversion )에 대해서 알아보즈아! (12) | 2020.03.23 |
[Java] 비교연산자에 대해서 알아보자! (10) | 2020.03.18 |
[Java] 산술연산자에 대해서 알아보자! (15) | 2020.03.11 |