배열은 같은 타입의 여러 변수를 하나의 묶음으로 다루는 것입니다.
public class Array {
public static void main(String[] args) {
// 배열 : 같은 자료형의 값 여러 개를 저장하는 연속된 공간
// 배열 선언 첫 번째 방법
// String[] coffees = new String[4];
// 두 번째 방법
// String coffees[] = new String[4]
// coffees[0] = "아메리카노"; // 0 부터 시작
// coffees[1] = "카페모카";
// coffees[2] = "라떼";
// coffees[3] = "카푸치노";
// 세 번째 방법
// String[] coffees = new String[] {"아메리카노", "카페모카", "라떼", "카푸치노"};
// 네 번째 방법
String[] coffees = {"아메리카노", "카페모카", "라떼", "카푸치노"};
// 커피 주문
System.out.println(coffees[0] + " 하나"); // 아메리카노 하나
System.out.println(coffees[1] + " 하나"); // 카페모카 하나
coffees[2] = "에스프레소"; // 값 변경
System.out.println(coffees[2] + " 하나"); // 에스프레소 하나
System.out.println(coffees[3] + " 하나"); // 카푸치노 하나
System.out.println("주세요");
}
}
배열을 하나씩 출력을 하는 것도 가능 하지만 for 문을 통해 한번에 출력 가능. (foreach)
public class ArrayLoop {
public static void main(String[] args) {
// 배열의 순회
String[] coffees = {"아메리카노", "카페모카", "라떼", "카푸치노"};
// for 반복문 순회
for (int i = 0; i < 4; i++) {
System.out.println(coffees[i] + " 하나");
}
System.out.println("주세요");
System.out.println("-------------");
// 배열의 길이를 이용한 순회
for (int i = 0; i < coffees.length; i++) {
System.out.println(coffees[i] + " 하나");
}
System.out.println("주세요");
System.out.println("--------------");
// enhanced for (for-each) 반복문 // foreach로 빠르게 작성가능
for (String coffee : coffees) {
System.out.println(coffee + "하나");
}
System.out.println("주세요");
}
}
테이블 형태의 데이터를 저장하기 위한 배열
public class MultiArray {
public static void main(String[] args) {
// 다차원 배열 (2차원 배열)
// 소규모 영화관 좌석
// A1 - A5
// B1 - B5
// C1 - C5
String[] setA = {"A1", "A2", "A3", "A4", "A5"};
String[] setB = {"B1", "B2", "B3", "B4", "B5"};
String[] setC = {"C1", "C2", "C3", "C4", "C5"};
String[][] sets = new String[][] {
{"A1", "A2", "A3", "A4", "A5"},
{"B1", "B2", "B3", "B4", "B5"},
{"C1", "C2", "C3", "C4", "C5"}
};
// B2 에 접근하려면?
System.out.println(sets[1][1]);
// C5 에 접근할려면?
System.out.println(sets[2][4]);
// 첫 줄에는 3칸, 둘째 줄에는 4칸, 셋째 줄에는 5칸
String[][] sets2 = {
{"A1", "A2", "A3"},
{"B1", "B2", "B3", "B4"},
{"C1", "C2", "C3", "C4", "C5"}
};
// A3 에 접근하려면?
System.out.println(sets2[0][2]);
// 3차원 배열 만들기
String[][][] marray = new String[][][] {
{ {}, {}, {} },
{ {}, {}, {} },
{ {}, {}, {} }
};
}
}
equals(), toString()
public class Arrays6_1 {
public static void main(String[] args) {
int[] num = {0, 1, 2};
int [][] score = {
{88,35, 100},
{84, 60, 55},
{100, 99, 72},
{33, 54, 77}
};
System.out.println("Arrays.toString(num) = " + Arrays.toString(num));
System.out.println("Arrays.deepToString(score) = " + Arrays.deepToString(score));
System.out.println();
String[][] strArr1 = {
{"AAA", "BBB", "CCC"},
{"aaa", "bbb", "ccc"}
};
String[][] strArr2 = {
{"AAA", "BBB", "CCC"},
{"aaa", "bbb", "ccc"}
};
// 1 차원 비교에서는 equals
System.out.println("Arrays.equals(strArr1[0], strArr2[0] = " + Arrays.equals(strArr1[0], strArr2[0])); // true
System.out.println("Arrays.equals(strArr1[1], strArr2[0] = " + Arrays.equals(strArr1[1], strArr2[0])); // false
System.out.println("Arrays.equals(strArr1, strArr2 = " + Arrays.equals(strArr1, strArr2)); // false
// 다차원 비교에는 deepEquals
System.out.println("Arrays.deepEquals(strArr1, strArr2 = " + Arrays.deepEquals(strArr1, strArr2)); // true
}
}
copeOf(), copeOfRange()
import java.util.Arrays;
public class Arrays6_2 {
public static void main(String[] args) {
int[] arr = {0, 1, 2, 3, 4};
System.out.println("Arrays.toString(arr) = " + Arrays.toString(arr));
System.out.println();
//copyOf
int[] arr2 = Arrays.copyOf(arr, arr.length);
System.out.println("Arrays.toString(arr2) = " + Arrays.toString(arr2));
int[] arr3 = Arrays.copyOf(arr, 3);
System.out.println("Arrays.toString(arr3) = " + Arrays.toString(arr3));
int[] arr4 = Arrays.copyOf(arr, 7); // 범위가 넘어가는 복사는 초기화값이 들어간다. [0, 1, 2, 3, 4, 0, 0]
System.out.println("Arrays.toString(arr4) = " + Arrays.toString(arr4));
System.out.println();
// copyOfRange
int[] arr5 = Arrays.copyOfRange(arr, 2, 4);
System.out.println("Arrays.toString(arr5) = " + Arrays.toString(arr5));
int[] arr6 = Arrays.copyOfRange(arr, 0, 7); // 범위가 넘어가는 복사는 초기화값이 들어간다.
System.out.println("Arrays.toString(arr6) = " + Arrays.toString(arr6));
}
}
sort()
import java.util.Arrays;
public class Arrays6_3 {
public static void main(String[] args) {
int[] arr = {3, 1, 8, 5, 9, 2, 10, 7, 6, 4};
System.out.println("Arrays.toString(arr) = " + Arrays.toString(arr));
System.out.println();
Arrays.sort(arr); // 오름차순으로 정렬됩니다.
System.out.println("sort");
System.out.println("Arrays.toString(arr) = " + Arrays.toString(arr));
}
}
오늘은 배열에 대해서 공부하였다. 느낌은 변수가 확장된 느낌이 들었다. 아직까지는 무작정 따라만 하고 있는데 늘어나는거는 영문타만 늘고 있는것 같은 느낌이든다.