배열이란?
배열은 같은 타입의 데이터를 연속된 공간에 나열하고, 각 데이터에 인덱스를 부여해놓은 자료구조입니다.
배열선언과 생성
int[] intArray ;
String[] strArray ;
// 값의 목록으로 생성하기
String[] names = {"김자바", "박자바", "감자바"};
// new로 지정
String[] names = null;
names = new String[] {"김자바", "박자바", "감자바"} ;
배열 변수를 이미 선언한 후에는 다른 실행문에서 중괄호를 사용한 배열 생성이 허용되지 않는다.
배열 변수를 미리 선언한 후 값 목록들이 나중에 결정되는 상황이라면 new 연산자를 사용해서 값 목록을 지정해 주어야한다.
// 길이가 5인 int[] 배열
int[] intArray = new int[5];
intArray[0] = 83 ; //값 지정해주기
향후 값들을 지정할 배열을 미리 만들고 싶다면 new 연산자로 다음과 같이 배열 객체를 생성할 수 있다.
객체를 참조하는 배열
기본 타입 배열은 각 항목에 직접 값을 갖고 있지만 참조타입배열은 각 항목에 객체의 번지를 가지고 있다.
String[] strArray = new String[3];
strArray[0] = "Java";
strArray[1] = "Java";
strArray[2] = new String("Java");
strArray[0]과 strArray[1] 배열 항목을 == 연산하면 결과는 true가 나온다.
반면에 String 객체를 new연산자로 생성하면 새로운 String 객체가 생성되고 다른 객체를 참조하기 때문에 strArray[0]과 strArray[2] 배열 항목의 ==는 false가 나온다.
배열복사
//for문으로 배열복사
int[] oldInArray = {1, 2, 3};
int[] newInArray = new int[5];
for(int i=0; i<oldInArray.length; i++){
newInArray[i] = oldInArray[i];
}
// 1, 2, 3, 0, 0
복사되지 않은 항목은 int[] 배열의 기본 초기값 0이 그대로 유지된다.
String[] oldStrArray = {"java","array","copy"};
String[] newStrArray = new String[5];
System.arraycopy(oldStrArray, 0, newStrArray,0, oldStrArray.length);
원본 배열, 원본 배열에서 복사할 항목의 시작 인덱스, 새 배열, 새 배열에서 붙여넣을 시작 인덱스, 복사할 개수
배열을 리스트로 바꾸기
//for문 사용
int[] num_list = {2,1,6};
// list 만들기
List<Integer> answer = new ArrayList<>();
//for를 이용하여 list에 배열값 넣기
for(int i = 0; i < num_list.length; i++){
answer.add(num_list[i]);
}
'공부중 > 혼자공부하는자바' 카테고리의 다른 글
자바 동작원리 (0) | 2024.02.02 |
---|---|
수 조작하기1 switch문사용하기 (0) | 2024.02.01 |
String.valueOf()보다 숫자+"" (0) | 2024.01.29 |
자바의 for구문에서 콜론(:)의 기능 (0) | 2024.01.29 |
인터페이스 interface (0) | 2024.01.10 |
댓글