Untitled

/*
 * 배열
 * → 한번의 선언으로 같은 타입의 데이터 공간을 메모리에 연속적으로 생성.
 */
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();
		
		
	}

}

Untitled

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();
		
		
	}

}