/*
* 배열
* → 한번의 선언으로 같은 타입의 데이터 공간을 메모리에 연속적으로 생성.
*/
public class ArrayEx01 {
public static void main(String[] args) {
// 변수는 데이터를 하나밖에 조작 및 저장, 값을 여러개 쓰려면 배열을 써야함.
// 배열 참조 변수
// → [] 를 사용해서 배열 참조 변수 생성.
int[] arr1; // → 표기권장
int arr2[];
// 배열 생성
// 위 까지는 배열의 참조변수만 선언.
arr1 = new int[3];
// arr1
// arr1 [0] [1] [2]
// | A0 | → | 0 | 1 | 2 |
// A0
// 배열의 요소 사용 : 배열명(배열의 참조변수)[index]
// → 배열안에 하나의 요소를 사용할 때는 index를 사용.
// → index 번호는 무조건 0 부터 시작. (임의로 변경불가)
arr1[0] = 10;
arr1[1] = 20;
arr1[2] = 30;
System.out.println("arr1[0] : " + arr1[0]);
System.out.println("arr1[1] : " + arr1[1]);
System.out.println("arr1[2] : " + arr1[2]);
System.out.println();
arr2 = new int[] { 1, 2, 1, 3 };
// arr2
// arr2 [0] [1] [2] [3]
// | B0 | → | 1 | 2 | 1 | 3 |
// B0
System.out.println("arr2[0] : " + arr2[0]);
System.out.println("arr2[1] : " + arr2[1]);
System.out.println("arr2[2] : " + arr2[2]);
System.out.println("arr2[3] : " + arr2[3]);
System.out.println();
}
}
public class ArrayEx02 {
public static void main(String[] args) {
// 배열은 생성과 동시에 배열안의 모든 요소가 자료형의 기본값으로 초기화.
int[] arr = new int[3];
System.out.println("arr[0] : " + arr[0]);
System.out.println();
double[] darr = new double[5];
System.out.println("darr[3] : " + darr[3]);
System.out.println();
// char 는 아스키코드의 NULL값으로 초기화.
char[] carr = new char[10];
System.out.println("carr[5] : " + carr[5]);
// int로 간제 형변환하여 찍어보면 십진수로 0으로 나옴.
// ! NULL POINT EXCEPTION ERROR ! 참조할 수 있는 변수가 없으므로, 참조변수(reference)를 생성해야함.
// Random random
// random = random.Random() O
// 참조변수 (객체의 주소값을 가지고 있기 때문.)
// random.Random() X
// String stn = ""; String stn = NULL; 으로 초기화가능.
System.out.println("carr[5] : " + (int)carr[5]);
System.out.println();
}
}
public class ArrayEx03 {
public static void main(String[] args) {
int[] iar = new int[5];
iar[0] = 10;
int idx = 0;
System.out.println("iar[" + idx + "] : " + iar[idx]);
System.out.println();
// length는 method가 아님.
System.out.println("iar 크기 : " + iar.length);
// iar 배열의 주소값출력.
System.out.println("iar : " + iar);
System.out.println();
// 배열 전체 요소 접근
for(int i=0;i<iar.length;i++) {
System.out.println("iar[" + i + "] : " + iar[i]);
}
}
}
import java.util.Scanner;
public class ArrayEx04 {
public static void main(String[] args) {
int size = 3;
int[] ExA = new int[size > 3 ? 3 : 100];
System.out.println("ExA 크기 : " + ExA.length);
System.out.println();
Scanner sc = new Scanner(System.in);
System.out.print("배열 크기 입력 > ");
int arrSize = sc.nextInt();
int[] arr = new int[arrSize];
System.out.println("arr 크기 : " + arr.length);
System.out.println();
sc.close();
}
}
public class ArrayEx05 {
public static void main(String[] args) {
int[] data = new int[5];
for(int i=0; i<data.length;i++) {
data[i] = i+1;
System.out.println("data[" + i + "] : " + data[i]);
}
System.out.println();
// String str = "abc";
// String test = str; O
int[] sub = data;
sub[1] = 7;
System.out.println("sub[1] : " + sub[1]);
// data가 사용중인 배열과 sub가 사용중인 배열이 같아, 값을 변경해주면 같이 변경.
System.out.println("data[1] : " + data[1]);
// 같은 주소를 참조하고 있으므로, 주소값이 같음.
// 한 개의 객체를 같이 쓰고있는건지, 다르게 쓰고 있는 건지 확인 필수.
System.out.println("data의 주소값 : " + data);
System.out.println("sub의 주소값 : " + sub);
}
}
import java.util.Random;
public class ArrayEx06 {
public static void main(String[] args) {
Random random = new Random();
int[] va = new int[5];
// 입력
for(int i=0;i<va.length;i++) {
va[i] = random.nextInt(30 - 1 + 1) + 1;
}
// 출력
System.out.println("---value array---");
for(int i=0;i<va.length;i++) {
System.out.println(" va[" + i + "] : " + va[i]);
}
System.out.println();
// 10~20 데이터 수
int cnt = 0;
for(int i=0;i<va.length;i++) {
if(va[i]>=10 && va[i]<=20) {
++cnt;
System.out.print("va[i] : " + va[i] + " ");
}
}
System.out.println("10~20 데이터 수 : " + cnt);
System.out.println();
// 전체의 합
int sum = 0;
for(int i=0;i<va.length;i++) {
sum+=va[i];
}
System.out.println("va[]의 전체 합 : " + sum);
System.out.println();
// 큰값 찾기 : 큰 값이 있는 곳의 인덱스를 작은 값 인덱스와 바꿈.
int max = 0;
for(int i=1;i<va.length;i++) {
if(va[i] > va[max]) {
max = i;
}
}
System.out.println("va[]의 큰 값 : " + va[max]);
System.out.println("큰 값의 index : " + max);
System.out.println();
}
}