컴퓨터 관련/JAVA

[java 10강] java 배열(array)

승명 2016. 12. 18. 13:16

[java 10강] java 배열(array)




강으를 시작하면서 뭔가 빠진것같은대 하고 생각을해보니..


배열에 대해서 빼먹었엇습니다...


그럼 배열에 대해서 알아보겠습니다.


우선 java 에서 배열이란 "같은타입의 여러 변수를 하나의 묶음으로 다루는 것" 을 배열이라고합니다.


그럼 또 문득 드는 생각이 있습니다.


난 변수 알고 있으니깐 필요한 만큼 변수를 생성해서 사용할래!


이런 생각말이죠 .. ㅎㅎ


저도 처음 배울때는 배열 필요도 없는줄 알았습니다...


그...러....나.....


큰 착각이였죠....


만약 10000 개의 데이터가 있으면 이걸 언제 변수로 생성하나요?


그리고 변수를 생성하면서 들어가는 메모리... 변수를 유지하는 메모리..... 이런부분들은 어떻게 하실껀가요??


그래서 배열이 존제합니다...


그리고 상당히 많이 쓰입니다... 정말입니다.. 배열을 알아야 나중에 arrayList 도 사용할수 있습니다.


그러니깐 꼭!!! 알고 넘어 갑시다.


배열도 종류가 있습니다. 배열, 이중배열, 다중배열 있습니다.


하지만! 배열만 알면 이중배열, 다중배열은 자동으로 알게됩니다.


모든지 기초만 알고 있으면 다머지는 술술 풀리게 되어있습니다.


그리고 정말 나중에는... 배열에 맵을 담아서 사용하게 되실껍니다........(잡소리임 ㅎㅎ)





여튼 배열의 선언 및 생성방법에 대해서 알아보겠습니다.




배열 선언 : 타입 [ ] 변수이름;

예제 : int [ ] test;




배열 생성 : new 타입[공간];

예제 : new int[7];





위의 선언과 생성을 동시해 하셔도 상관없습니다. 밑에 처럼 말이죠 ㅎㅎ




선언 + 생성 :  int [ ] test = new int[7];



그럼 여기서 잠깐 드는 의문이 있습니다. 뭐하러 생성을 해야하나요? 이런생각이 들죠..


그이유는... 배열만 생성하면 진짜 배열만 생성되고 데이터를 저장할수 있는 공간은 없습니다.


생성자를 생성해야 데이터를 넣을수 있는 메모리의 공간이 생성되는것이지요..


그리고 배열에 있어 엄청 했갈리고 중요하는것이 있습니다.


바로 생성자로 생성된 메모리 영역은 0번 부터 시작된다는점...!!!


int [ ] test = new int[7];  <-- 와 같이 데이터 저장공간을 7개를 만들면 


0,1,2,3,4,5,6  이렇게 7개가 생성된다는것입니다.


이러면 배열은 다 배운것 입니다.


그럼 바로 예제로 넘어가겠습니다.


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
/*
 * @author 국브
 */
public class hello {
 
    public static void main(String[] args) {
    String[] test = new String[3];            //선언과 생성 한방에 끝
    test[0] = "첫번째";                        //첫번째 값 넣어주기 (0번부터가 처음!!)
    test[1] = "두번째";                        //두번째 값 넣어주기
    test[2] = "세번째";                        //세번째 값 넣어주기
    
    System.out.println(test[0]);
    }
}



콘솔 출력값 입니다.




위 예제를 설명드리겠습니다.


"String[] test = new String[3];"  에서 String 타입의 test 라는 배열을 선언하고


String 타입으로 데이터 공간을 3개로 생성하였습니다.


그다음  test[0] 에 스트링 형식의 값으로 "첫번째" 라는 값을 넣어주었습니다. (배열은 0번부터 시작합니다!)


그다음  test[1] 에 스트링 형식의 값으로 "두번째" 라는 값을 넣어주었습니다.


그다음  test[2] 에 스트링 형식의 값으로 "세번째" 라는 값을 넣어주었습니다.


그럼 남는 데이터 공간이 있나요??? 당연히 없습니다. 0 번부터 시작하여 2번에서 끝나면 총몃개? 3개입니다.


마지막에 test[0] 을 출력했습니다. 아까 test[0] 에 넣어놓은 "첫번째" 값이 출력됩니다.


이해가 되셧나요?




그럼 다른 방법으로 값을 넣는 것도 보여드리겠습니다.


1
2
3
4
5
6
7
8
9
10
11
12
/*
 * @author 국브
 */
public class hello {
 
    public static void main(String[] args) {
    String[] test = {"첫번째","두번째","세번째"};            
    
    System.out.println(test[0]);
    }
}
 



실행화면 입니다.



설명드리겠습니다.


이것도 첫번째 예제랑 똑같은 것입니다. 생성하는것과 데이터를 넣는것만 바뀐것입니다.


배열은 쉡게 생각하면 { } 괄호 안에 데이터가 있다고 생각하시면 됩니다.


위의 예제에서 


 "String[] test = {"첫번째","두번째","세번째"};"


이렇게 되어 있습니다.


이건 생성과 동시에 값까지 넣어 준것입니다.


더 함축된것이죠 ㅎㅎ


0번째 데이터 공간에  "첫번째" 값이 들어가고,


1번째 데이터 공간에  "두번째" 값이 들어가고,


2번째 데이터 공간에  "세번째" 값이 들어가고,


즉, 왼쪽부터 0으로 시작하는것입니다.


그럼 데이터 공간은요? 넣어준 만큼 생성되는것 입니다.


그럼 두번째 예제만 알고 있으면 되겠다!!!


아닙니다.


결론은 둘다 많이 씁니다.


첫번째 예제는 for 문을 돌릴때 사용하면 딱이고


두번째 예제는 코딩하는 사람이 하드코딩을 하여 생성할때 사용하면 딱이겠죠 ㅎㅎ

'컴퓨터 관련 > JAVA' 카테고리의 다른 글

[java 12강] java 클래스와 객체   (0) 2016.12.18
[java 11강] java 접근제한자  (0) 2016.12.18
[java 9강] java 제네릭 이란?  (0) 2016.12.18
[java 8강] java API 란?  (0) 2016.12.18
[java 6강] 반복문  (0) 2016.12.18