- 연속하여 저장됨
- 동일한 데이터 타입, 하나의 변수로 관리, 연속되므로 인덱스를 통해 원소 접근 가능 (인덱싱)
- 메모리상 배열의 첫번째 원소의 주소가 배열 이름에 들어가 있기 때문에 첫 인덱스 = 0 (for 주소 유추)
-> 배열 첫번째 인덱스 주소 + 인덱스 * 데이터 타입
- 동적 할당
컴파일러는 new 하면 메모리 사이즈, 주소값을 알지 못함.
선언
int[] scores = {100, 50, 40, 50, 80};
int[] scores2 = new int[5];
int[] sores3 = new int[] {100, 50, 40, 50, 80};
- for vs. for each
public class ArraysExample {
public static void main(String[] args) {
int score1 = 100;
int score2 = 50;
int score3 = 40;
int score4 = 50;
int score5 = 80;
int[] scores = {100, 50, 40, 50, 80};
int[] scores2 = new int[5];
scores2[0] = 100;
scores2[1] = 50;
scores2[2] = 40;
scores2[3] = 50;
scores2[4] = 80;
scores2[5] = 90;
int[] scores3;
scores3 = new int[] {100, 50, 40, 50, 80};
int sum = 0;
for (int i = 0; i < scores.length; i++) {
sum += scores[i];
scores[i] = 100;
}
sum = 0;
for (int score: scores) {
sum += score;
score = 100;
}
}
}
Equals and Copy
public class ArraysEqualsCopyExample {
public static void main(String[] args) {
int[] arr1 = {1, 2, 3, 4, 5};
int[] arr2 = {1, 2, 3, 4, 5};
System.out.println(isEquals(arr1, arr2));
int[] copy = copy(arr1);
System.out.println(copy);
System.out.println(Arrays.toString(copy));
System.out.println(arr1);
System.out.println(Arrays.toString(arr1));
System.out.println(Arrays.toString(arr2) + "\n");
System.out.println(Arrays.equals(arr1, arr2) + "\n");
}
public static boolean isEquals(int[] arr1, int[] arr2) {
if (arr1.length != arr2.length) return false;
for (int i = 0; i < arr1.length; i++) {
if (arr1[i] != arr2[i]) return false;
}
return true;
}
public static int[] copy(int[] arr) {
int[] copy = new int[arr.length];
for (int i = 0; i < arr.length; i++) {
copy[i] = arr[i];
}
return copy;
}
}
원소가 참조타입인 배열
public class StringArraysExample {
public static void main(String[] args) {
String[] names = {"Sally", "John", "Jacob", "Kelly", "Minna"};
System.out.println("names = " + names);
for (int i = 0; i < names.length; i++) {
System.out.println("names[i] = " + names[i]);
}
}
}
![](https://velog.velcdn.com/images/soyoungkangme/post/f3c74613-d1d1-4d6a-972a-e9a4a5b9438a/image.png)