일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 |
- 메서드
- 배열
- wil
- 코딩공부
- 회고
- HTML
- 코딩
- CS
- Spring
- ArrayList
- github
- Til
- Java
- css
- 99클럽
- 프로그래머스
- 면접(java
- Grafana
- cs 공부)준비
- 자바
- aop
- GIT
- 이진 탐색(binary search)
- 개발자 취업
- 코딩문제
- 정렬 알고리즘(sort algorithm)
- Entity
- 항해99
- 자료구조
- 코딩테스트 준비
- Today
- Total
hayu's 개발 일지
[TIL]240219 배열(1) 본문
배열이란?
- 같은 타입의 변수를 반복해서 선언하고, 반복해서 사용하는 문제를 풀 때 변수 이름이 달라서 반복문도 사용할 수 없는 경우가 있다. 그런 문제를 해결하는 것이 배열이다.
- 즉, 배열은 같은 타입의 변수를 사용하기 편하게 하나로 묶어둔 것이다.
int [] students; // 배열 선언
- 배열을 사용하기 위해서는 int [] students; 와 같이 배열 변수를 선언해야 한다.
- 일반적인 변수와 달리 int [] 처럼 타입 다음에 대괄호[] 가 들어간다는 점이다. 배열 변수를 선언했다고 배열이 만들어진 것은 아니다. int a 에는 정수를, double b 에는 실수를 담는 것처럼 배열 변수에 배열을 담아야한다.
students = new int[5]; // 배열 생성
- 배열을 사용하려면 배열을 생성해야 한다.
- new int[5] 라고 입력하면, 총 5개의 int 형 변수가 만들어진다. new 는 새로 생성한다는 뜻이고 int[5] 는 int 형 변수 5개라는 뜻이다. 즉, int 형 변수 5개를 다룰 수 있는 배열을 새로 만든다는 뜻이다.
배열과 초기화
- new int[5] 라고 하면 총 5개의 int 형 변수가 만들어진다. 자바는 배열을 생성할 때 그 내부값을 자동으로 초기화한다.
- 숫자는 0, boolean 은 false , String 은 null (없다는 뜻.)로 초기화 된다.
배열 사용
인덱스
- 배열은 변수와 사용법이 비슷한데, [] 사이에 숫자 번호를 넣어주는 것에차이가 있다. 배열의 위치를 나타내는 숫자를 인덱스(index)라고 한다.
배열은 0부터 시작된다.
- new int[5] 와 같이 5개의 요소를 가지는 int 형 배열을 만들었다면 인덱스는 0, 1, 2, 3, 4 가 존재한다.
- 인덱스는 0부터 시작된다. 배열의 요소를 5개로 생성했지만. 인덱스는 0부터 시작한다. 즉, 사용 가능 인덱스 범위는 0 ~ (n - 1) 이 된다. 그래서 배열의 마지막 인덱스는 4가 된다.
배열에 값 대입
- 배열의 값을 대입하는 것은 일반적인 변수와 사용법이 같다. 추가로 [] 를 통해 인덱슴나 넣어주면 된다.
기본형 vs 참조형
- 자바의 변수 데이터 타입을 크게 보면 기본형과 참조형으로 분류할 수 있다. 사용하는 값을 직접 넣을 수 있는 기본형, 그리고 배열의 변수와 같이 메모리의 참조값을 넣을 수 있는 참조형으로 분류할 수 있다.
기본형(Primitive Type)
- int , long , double , boolean 처럼 변수에 사용할 값을 직접 넣을 수 있는 데이터 타입을 기본형이라 한다.
참조형(Reference Type)
- int [] students 와 같이 데이터에 접근하기 위한 참조(주소)를 저장하는 데이터 타입을 참조형이라 한다.
배열 리펙토링
- 리펙토링은 기존의 코드 기능은 유지하되, 내부 구조를 개선하여 가독성을 높이고 유지보수를 용이하게 하는 과정을 뜻한다.
기본 코드
int student1 = 90;
int student2 = 80;
int student3 = 70;
int student4 = 60;
int student5 = 50;
System.out.println("학생1 점수: " + students[0]);
System.out.println("학생2 점수: " + students[1]);
System.out.println("학생3 점수: " + students[2]);
System.out.println("학생4 점수: " + students[3]);
System.out.println("학생5 점수: " + students[4]);
- 변수에 값을 넣고, 출력하는 코드이다.
리펙토링 코드1
int[] students; //배열 변수 선언
students = new int[5]; //배열 생성
//변수 값 대입
students[0] = 90;
students[1] = 80;
students[2] = 70;
students[3] = 60;
students[4] = 50;
//변수 값 사용
for (int i = 0; i < students.length; i++) {
System.out.println("학생" + (i + 1) + " 점수: " + students[i]);
}
- 배열을 만들어 값을 넣고, 반복문을 사용하여 출력했다.
리펙토링 코드2
students = new int[]{90, 80, 70, 60, 50}; //배열 생성과 초기화
for (int i = 0; i < students.length; i++) {
System.out.println("학생" + (i + 1) + " 점수: " + students[i]);
}
- 배열은 {} 를 사용해서 생성과 초기화를 동시에 하는 기능을 제공한다.
리펙토링 코드3
//배열 생성 간략 버전, 배열 선언과 함께 사용시 new int[] 생략 가능
int[] students = {90, 80, 70, 60, 50};
for (int i = 0; i < students.length; i++) {
System.out.println("학생" + (i + 1) + " 점수: " + students[i]);
}
회고
- 배열의 형식에 유의해야 한다고 생각했다.
int[] students;
students = {90, 80, 70, 60, 50};
이런 형식은 오류가 발생한다는 사실을 알게되었다.
'기술 > java' 카테고리의 다른 글
[TIL]240223 메서드(1) (0) | 2024.02.23 |
---|---|
[TIL]240220 배열(2) (0) | 2024.02.20 |
[TIL]240212 반복문(2) (0) | 2024.02.12 |
[TIL]240210 반복문(1) (1) | 2024.02.10 |
[TIL]240207 JAVA 조건문(2) (0) | 2024.02.07 |