자바

배열

tttck88 2019. 4. 2. 18:40

배열의 선언

배열을 선언하는 것은 단지 생성된 배열을 다루기 위한 참조변수를 위한 공간이 만들어질 뿐이고,

배열을 생성해야만 비로소 값을 저장할 수 있는 공간이 만들어지는 것이다.

참조변수를 통해 데이터가 저장된 공간에 접근한다.(객체)

int[] score

 

배열의 생성

배열을 생성해야만 비로소 값을 저장할 수 있는 공간이 만들어지는 것이다.

int[] score = new int[5]

 

배열의 길이

이미 생성된 배열의 길이는 변하지 않는다(컬렉션과비교).

 

배열 선언시 주의사항

int[] score;

score = new int[] {1,2,3,4,5} // ok

score = {1,2,3,4,5} // 에러

- 배열의 선언과 생성을 따로 하는 경우에는 생략할 수 없다는 점을 주의

 

배열 출력

Arrays.toString();

배열의 값을 바로 출력할 경우에는 배열의 주소가 출력된다.

 

배열 복사

System.arraycopy(num, 0, newNum, 0, num.length);

num의 0번값을 newNum의 0번째로 num.length만큼 복사

 

String 클래스의 주요 메소드

char charAt(int index); 문자열에서 해당 위치(index)에 있는 문자를 반환한다.

int length(); 문자열의 길이를 반환한다.

length() 이것은 문자열의 길이 확인

length 배열의 길이 확인

size() 컬렉션 타입의 길이를 확인

 

String substring(int from, int to); 문자열에서 해당 범위(from ~ to)에 있는 문자열을 반환한다.(to는 범위에 포함되지 않는다)

boolean equals(String str); 문자열의 내용이 같은지 확인한다. 같으면 결과는 true, 다르면 false가 된다.

==로 비교할시에는 객체의 주소를 비교하기에 의도치 않은 결과가 발생할 수 있다.

char[] toCharArray(); 문자열을 문자배열(char[])로 변환해서 반환한다.

 

다차원배열에서의 for문 활용

  int[][] score = { 
          {100,100,100} 
         ,{20,20,20} 
         ,{30,30,30} 
         ,{40,40,40} 
  }; 
  int sum=0; 
   
  for(int[] tmp : score) { 
      for(int tmpp : tmp) { 
      sum += tmpp; 
  }
  }

 

가변배열

2차원 이상의 다차원 배열을 생성할 때 전체 배열 차수 중 마지막 차수의 길의를 지정하지 않고, 추후에 각기 다른 길이의 배열을 생성함으로서 고정된 형태가 아닌 보다 유동적인 가변 배열을 구성할 수 있다.

int[][] score = new int[5][];
score[0] = new int[3];
score[1] = new int[2];
score[2] = new int[4];
score[3] = new int[2];
score[4] = new int[3];

 

 

남궁성,『Java의 정석』,도우출판