본문 바로가기
공부중/혼자공부하는자바

[JAVA] 배열, 리스트

by 식빵ee 2024. 2. 1.
배열이란?

 

배열은 같은 타입의 데이터를 연속된 공간에 나열하고, 각 데이터에 인덱스를 부여해놓은 자료구조입니다.

 

배열선언과 생성
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

댓글


post image post image post image post image post image post image post image post image