배열 (array)
- 스칼라 Scala

- 벡터 Vector

정의
배열 (array) - 여러 개의 변수를 하나로 묶어 넣은 것
인덱스 (index) - 배열의 요소들이 불리는 번호 / [0] 부터 시작
- 형태
int[ ] | s | = | new int | [10] |
배열의 자료형 | 배열의 이름 | ㅤ | new 연산자 | 배열의 크기 |
1. int[ ] values; → 자바
2. int values[ ]; → C언어
public class ArrayTest01 {
public static void main(String[] args) {
int[] s = new int[10];
for (int i = 0; i < s.length; i++) {
s[i] = i;
System.out.print(s[i] + " ");
}
}
}
배열의 초기화
public class ArrayTest02 {
public static void main(String[] args) {
int[] scores = {10, 20, 30, 40, 50};
for (int i = 0; i < scores.length; i++) {
System.out.print(scores[i]+" ");
}
}
}
배열에 저장되는 수를 미리 알고 있는 경우에 사용
for-each 루프
- 형태
for | ( int e : | list) |
ㅤ | 변수 | 배열명 |
ublic class ArrayTest03 {
public static void main(String[] args) {
int[] nambers = {10, 20, 30};
for (int value : nambers)
System.out.print(value+ " ");
}
}
import java.util.Arrays;
public class ArrayTest03a {
public static void main(String[] args) {
int[] nambers = {10, 20, 30};
System.out.println(Arrays.toString(nambers));
}
}
배열은 연속된 공간, 스캔이 빠르다(풀스캔), 크기가 결정되면 구조 변경 불가능
2차원 배열
- 형태
int[ ][ ] s | = | new int | [3] | [5]; |
2개의 대괄호 | ㅤ | ㅤ | 행의 개수 | 열의 개수 |
2차원 배열의 초기화
- 같은 행끼리 중괄호
int[ ][ ] | testArray = { |
ㅤ | {10, 20, 30}, |
ㅤ | {40, 50, 60} |
} | ㅤ |
- 극장에 앉아 있는 각 행의 관객수
public class TheaterSeats {
public static void main(String[] args) {
int [][] seats = {
{0,0,0,1,1,0,0,0,0,0},
{0,0,1,1,0,0,0,0,0,0},
{0,0,0,1,1,0,1,1,1,0}};
int count = 0;
int[] seat1 = seats[0];
for (int i = 0; i < seat1.length; i++) {
System.out.println(seat1[i]);
count = count + seat1[i];
}
System.out.print("첫번째 행의 관객수: " + count);
}
}
모듈화 (리팩토리 가능)두번째, 세번째 행 관객수까지
public class TheaterSeats {
public static void main(String[] args) {
int [][] seats = {
{0,0,0,1,1,0,0,0,0,0},
{0,0,1,1,0,0,0,0,0,0},
{0,0,0,0,0,0,1,1,1,0}};
int sum = 0;
int count = 0;
count = 0;
int[] seat1 = seats[0];
for (int i = 0; i < seat1.length; i++) {
count = count + seat1[i];
}
System.out.print("첫번째 행의 관객수: " + count);
sum = sum + count;
int[] seat2 = seats[1];
count = 0;
for (int i = 0; i < seat2.length; i++) {
count = count + seat2[i];
}
System.out.print("두번째 행의 관객수: " + count);
sum = sum + count;
int[] seat3 = seats[2];
count = 0;
for (int i = 0; i < seat3.length; i++) {
count = count + seat3[i];
}
System.out.print("세번째 행의 관객수: " + count);
sum = sum + count;
}
}
int count = count + seat1[i]; ⇒ 누적이 안됨
count = 0을 하는 이유는 0이 누적된 값으로 되기 때문에 다시 0으로 세팅해주는 것
int row = -1; ⇒ 처음부터 row++을 하면서 모든 식을 동일화 (=부품의 모듈화)
public static void main(String[] args) {
int [][] seats = {
{0,0,0,1,1,0,0,0,0,0},
{0,0,1,1,0,0,0,0,0,0},
{0,0,0,0,0,0,1,1,1,0}};
int sum = 0;
int count = 0;
int row = -1;
row++;
count = 0;
for (int i = 0; i < seats[row].length; i++) {
count = count + seats[row][i];
}
System.out.println(row + "번째 행의 관객수: " + count);
sum = sum + count;
row++;
count = 0;
for (int i = 0; i < seats[row].length; i++) {
count = count + seats[row][i];
}
System.out.println(row + "번째 행의 관객수: " + count);
sum = sum + count;
row ++;
count = 0;
for (int i = 0; i < seats[row].length; i++) {
count = count + seats[row][i];
}
System.out.println(row + "번째 행의 관객수: " + count);
sum = sum + count;
System.out.println("전체 관객수는: " + sum);
}
}

- for문으로 반복되는 부분 통일
public class TheaterSeats {
public static void main(String[] args) {
int [][] seats = {
{0,0,0,1,1,0,0,0,0,0},
{0,0,1,1,0,0,0,0,0,0},
{0,0,0,0,0,0,1,1,1,0},
{1,1,0,0,0,0,1,1,1,0}};
int sum = 0;
int count = 0;
for (int row = 0; row < seats.length; row++) {
count = 0;
for (int i = 0; i < seats[row].length; i++) {
count = count + seats[row][i];
}
System.out.println(row + "번째 행의 관객수: " + count);
sum = sum + count;
}
System.out.println("전체 관객수는: " + sum);
}
}
int count = 0; for문 안에 집어 넣으면 계속 0이 돼서 for문 위에 올려야 함

- 총 관객수만 구하는 프로그램
public class TheaterSeatsBook {
public static void main(String[] args) {
int [][] seats = {
{0,0,0,1,1,0,0,0,0,0},
{0,0,1,1,0,0,0,0,0,0},
{0,0,0,0,0,0,1,1,1,0}};
int count = 0;
for (int i = 0; i < seats.length; i++) {
for (int k = 0; k < seats[i].length; k++) {
count += seats[i][k];
}
}
System.out.println("전체 관객수는: " + count);
}
}
seats.lengt -> 열의 갯수
linked list
- 컬랙션은 배열과 다르게 다음 주소를 알아야함
4의 크기 | ⇒ | 1, 2, 3, 4 |
ㅤ | ↓ | ㅤ |
ㅤ | 추가 5 | ㅤ |

arraylist
배열의 크기를 동적으로 변경 가능add 메소드를 호출하여 리스트에 추가 / 삭제 시에는 remove(삭제할 순서의 번호)
import java.util.ArrayList;
public class ArrayListTest {
public static void main(String[] args) {
ArrayList<String> list = new ArrayList<>();
list.add("철수");
list.add("영희");
list.add("순신");
list.add("자영");
System.out.println(list.get(3));
list.remove(3);
System.out.println(list.get(3));
}
Share article