Notice
Recent Posts
Recent Comments
Link
«   2024/06   »
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
Tags
more
Archives
Today
Total
관리 메뉴

개발 한번 해블로그

[Java] 7. 배열(Array) 본문

Java

[Java] 7. 배열(Array)

hide on bush 2023. 11. 20. 12:40

지금까지 하나의 구조를 만들면서 새로운 자료형을 만들어봤다.
그럼 앞에서 만든 Book 배열이라고 할 수 있는가?
그럼 배열이 도대체 뭔디?

1. 배열

- 배열은 한 구조에 동일한 데이터를 여러 개를 저장할 수 있는 구조를 의미한다.

1)

1 2 3 4 5

이건 배열 맞음

2)

이름 15676 10.4564 True

이건 이질적인 구조로 배열 아님

3)

a p p l e

이건 배열 맞음

- 해당 표들은 모두 1차원 배열이며, 행과 열이 있는건 2차원 배열이라고 한다.
- 1차원 배열의 형태는 예를 들어 int[] a=new int[행]; 이다.
- 2차원 배열의 형태는 예를 들어 int[][] a=new int[행][열]; 이다.
- 배열도 객체 취급하므로 객체배열이라고 한다. 
- 그리고 배열의 인덱서 시작은 [1]이 아닌 [0]부터 시작
- 예시)

a p p l e
a[0] a[1] a[2] a[3] a[4]

 

Q. 그럼 왜 배열을 사용하는 걸까?(데이터를 개별로 만들면 문제점)

  • 데이터를 개별로 만들면 반복문이 사용 불가
  • 데이터를 개별로 만들면 이동이 불편

<일반배열 실습>

Q1. 정수 5개를 저장할 배열을 생성하고 모든 원소에 10 저장

반복문 사용시

- for문 간단 설명
- int i=0 : 어디서부터 시작해? i가 0부터 시작
- i<a.length : 언제까지 반복해? 마지막 조건보다 하나 적게까지(여기서 length는 배열의 길이를 알 수 있는 명령어)
- i++ : i가 1씩 증가

Q2. 정수 5개를 아채러첨 배열에 초기화하고 index 0번째와 index 3번째 값을 더하여 출력

- 첫번째 실습처럼 하나씩 넣어도 되지만 한꺼번에 기입하는 것도 가능. 이것을 초기화라고 함

Q3. 아래 char[] 배열에 APPLE이라는 문자가 저장되어있다. 대문자로 된 APPLE를 소문자 apple로 출력

<실습1>

Q1. 영화 3편을 저장할 배열을 생성하고 영화 3편의 데이터를 저장하고 출력(객체배열임)

저번에 만들어 놓은 class

 

2. 2차원 배열

- 만약 3명의 학생의 3개 과목 성적을 처리해야하는 경우에 1차원 배열을 사용할 수 있을까?
- NOOOO~~ 왜냐면 1차원 배열을 3개를 만들면 앞서서 말했던 데이터를 개별로 만드는 문제로 반복문 사용이 불가능하다
- 즉 2차원 배열 1개를 만들어 연속적인 구조로 반복문을 사용할 수 있게 만들어줘야 한다.

1차원 배열 3개 생성

 

2차원 배열 1개 생성

- 2차원 배열 1개를 생성했을 때 사실 모든 행이 붙어있는 구조가 아님. 아래와 같은 구조로 되어 있음

<실습2>

Q1. 2행 4열의 정수형 배열 생성

 

Q2. 2차원 배열의 초기화(행 단위로 초기화)와 반복문을 활용한 원소 접근

 

Q3. 서로 다른 열을 가진 가변 길이 배열 만들기

 

배열 누가 쉽다했누,, 근데 큰 산을 넘은 것 같지만 앞에는 더 큰 산이 있다고 한다 ^^!
하지만 주말동안 엄청 큰 대박적 사건이 있었다,,
그거슨 바로,, T1 롤드컵 우승,,, 상혁이가 이번 우승은 자신이 아닌 팀을 위한 것이라는 말을 듣고 1차 눈물,, 
저녁 먹으면서 우승해도 눈물 안나올것 같다고 했지만 우승하면서 울 애기들 좋아하는거보자마자 2차 눈물,, 
내 인생도 페이커처럼,,,,😢
티원 우승 축하해💕