07. Java 기초 4 / 20230420

2023. 4. 20. 23:43
🧑🏻‍💻  배열, 1차원 배열, 2차원 배열, 가변 배열, 배열 탐색

 

💡 배열이란? 

➡️ 동일한 타입의 값들을 하나의 묶음으로 묶은 자료 구조

  • 배열을 통해 값들을 묶어서 저장한다는 것은 메모리 공간 상에 물리적으로 값들을 모아서 저장하는 것
    • 요소(element) : 배열이 가진 각 값의 요소
    • 인덱스(index) : 배열의 각 요소가 부여받는 순번

 

💡 1차원 배열

1) 1차원 배열의 선언과 초기화 
➡️ 1차원 배열은 가장 일반적인 배열, 배열의 요소가 배열이 아닌 배열 의미

➡️ 선언할 때는 타입 뒤에 대괄호 붙여서 배열 선언하고 초기화 

String[] students; // 배열을 가리킬 참조 변수 선언
students = new String[20];
// 20개의 String 값을 저장할 수 있는 배열 생성(아직 값은 null 초기화)
// 대입 연산자에 의해 생성된 배열 첫 번째 요소의 주소값이 참조 변수 students에 할당됨
왜 students 는 참조 변수일까? 
👉🏻 자바에서 배열은 참조 타입에 해당됨, 그래서 students는 선언 이후에 생성될 배열의 주소값을 담을 참조 변수가 됨
String[] students;
// 배열을 선언하는 시점에 배열이 몇 개의 요소를 가질지 컴퓨터는 알 수 없음
// 그래서 먼저 배열을 어딘가에 생성한 다음, 생성된 배열의 시작 주소를 students에 메모해둔다고 생각하면 됨

📍 실제 값 넣어서 초기화하기

String[] students = new String[] { "철수", "영희", ... "민수", "나리" };

// 선언과 초기화를 하나의 문장으로 할 때 한해 new String[] 생략 가능
String[] students = { "철수", "영희", ... "민수", "나리" };

 

2) 배열에 넣은 값 사용하기

➡️ 배열 내 특정 요소에 할당되어 있는 값에 접근하려면 배열 참조 변수의 이름과 배열의 인덱스 활용

➡️ 배열참조변수이름[인덱스]

String[] students = new String[]{ "철수", "영희", ... "민수", "나리" };

System.out.prinln(students[0]); // 철수
System.out.prinln(students[1]); // 영희
System.out.prinln(students[19]); // 나리

 

3) 배열의 길이

➡️ 배열이 가진 요소의 개수를 배열의 길이 또는 크기라고 부름

String[] students = new String[20];

System.out.println(students.length); // 20

📍 인덱스는 0부터 시작하기 때문에 배열의 길이가 20이라면 마지막 요소의 인덱스는 19
      즉, 배열의 길이 - 1 이 배열 마지막 요소의 인덱스가 됨

 

💡 2차원 배열

➡️ 배열의 각 요소가 또 다른 배열인 구조

2차원 배열 연습

 

💡 가변 배열

➡️ 2차원 이상의 배열, 1차원보다는 자유로운 형태로 배열을 만들 수 있음
즉, 배열이 2차원 이상일 때 마지막 차수에 해당하는 배열의 길이를 고정하지 않아도 됨

가변 배열

 

💡 각 배열의 초기값 


오늘은 배열에 대해 알아보았다. 안 그래도 공부하면서 제일 애먹은 부분이었는데 한 번 더 이렇게 보니 좀 더 머릿속에 잘 들어오는 것 같기도 하다. 익숙해지려면 연습은 더 필요하겠지만...  백문이불여일타! 라고 그래도 모를 때는 이것저것 실행시켜보고 왜 안 되는지 확인하니까 이해도 쉽다. 확실히 계속 두드려보고 확인해 보는 게 답인 것 같다. 코플릿을 계속 풀다 보니 나오는 실수? 습관? 을 발견했다. 자꾸 문제를 꼼꼼하게 읽지 않고 혼자 마음대로 생각해서 냅다 코드 먼저 짜보려고 하는 것, 그리고 세미콜론 같은 사소하지만 중요한 것들을 빼먹는 실수들! 그래서 문제를 여러번 읽고 코드를 짜기 전에 더 꼼꼼하게 정리하고 배웠던 수도 코드도 작성하는 것에 신경을 좀 써야할 것 같다는 생각이 들었다. 마지막에 코드를 다 짜고 나서도 한 번 더 두 번 더 확인하기! 

BELATED ARTICLES

more