


같은 자료형의 변수를 하나의 묶음으로 다루는 것
배열은 저장된 값마다 인덱스 번호가 0부터 시작하여 설정

자료형[ ] 배열명 ;
자료형 배열명[ ] ;
자료형[ ] 배열명 = new 자료형[배열크기];
자료형 배열명[ ] = new 자료형[배열크기] ;
ex) int[] arr = new int[3];
int arr[] = new int[3];
배열은 참조 변수로 Heap영역에 할당되며 배열 공간의 주소를 저장
배열 공간의 주소를 이용해 인덱스를 참조하는 방식으로 값 처리

index가 순차적으로 증가함에 따라 초기화할 리터럴 값이 규칙적이라면 반복문을 통해 배열 초기화 가능


class ArrayPractice
public void practice1(){
int [] arr = new int[9]; // 길이가 9번째 배열 선언 0 1 2 3 4 5 6 7 8 9
int sum = 0;
for(int i=0; i< arr.length; i++) { // 0~9
arr[i] = i+1; // [0] = 1, [1] = 2 ...
System.out.print(arr[i] + " ");
if(i % 2 == 0 ) {
sum += arr[i];
}
}
System.out.println();
System.out.println("짝수 번째 인덱스 합 : " + sum);
}


class ArrayPractice
public void practice2() {
int [] arr = new int[9]; // [0]~[9]
int sum = 0;
for(int i=0; i<arr.length; i++) {
arr[i] = 9-i; // [0] = 9 [1] = 8 [2] = 7
System.out.print(arr[i] + " ");
if(i % 2 > 0 ) {
sum = sum + arr[i];
}
}
System.out.println();
System.out.println("홀수 번째 인덱스 합 : " + sum);
}


class ArrayPractice
public void practice3() {
Scanner sc = new Scanner(System.in);
System.out.print("양의 정수 : ");
int input = sc.nextInt(); // 5
int[] arr = new int[input]; // [0]~[5]
for(int i=0; i<arr.length; i++) {
arr[i] = i+1;
System.out.print(arr[i] + " ");
}
System.out.println();
}


class ArrayPractice
public void practice4() {
Scanner sc = new Scanner(System.in);
int[] arr = new int[5];
for (int i = 0; i < arr.length; i++) {
System.out.print("입력 " + i + " : ");
arr[i] = sc.nextInt();
}
System.out.print("검색할 값 : ");
int search = sc.nextInt();
boolean flag = false;
for (int i = 0; i < arr.length; i++) {
if (search == arr[i]) {
System.out.println("인덱스 : " + i);
flag = true;
break;
}
}
if (flag == false)
System.out.println("일치하는 값이 존재하지 않습니다.");
}



class ArrayPractice
public void practice5() {
Scanner sc = new Scanner(System.in);
System.out.print("문자열 : ");
String input = sc.nextLine(); // hello
char[] arr = new char[input.length()]; // hello 길이만큼 0~5
for(int i=0; i<arr.length; i++) {
arr[i]=input.charAt(i); // [0] = h , [1] = e
}
int count=0; // count 몇 개
System.out.print("문자 : ");
char ch = sc.next().charAt(0);
System.out.printf("%s에 %s가 존재하는 위치(인덱스) : " , input, ch);
for(int i=0; i<arr.length; i++) {
if(ch == arr[i]) {
System.out.print(i + " ");
count++;
}
}
System.out.println();
if(count > 0) {
System.out.println(ch + " 개수 : " + count);
} else {
System.out.println("존재하지 않습니다");
}
}


class ArrayPractice
public void practice6() {
Scanner sc = new Scanner(System.in);
int sum = 0;
System.out.print("정수 : ");
int input = sc.nextInt();
int[] arr = new int[input];
for(int i=0; i<arr.length; i++) {
System.out.print("배열 " + i + "번째 인덱스에 넣을 값 : ");
arr[i] = sc.nextInt();
sum += arr[i];
}
for (int i = 0; i < arr.length; i++)
System.out.print(arr[i] + " ");
System.out.println("\n총 합 : " + sum);
}


class ArrayPractice
public void practice7() {
Scanner sc = new Scanner(System.in);
System.out.printf("주민등록번호(-포함) : ");
String str = sc.nextLine();
char [] arr = new char[str.length()];
for(int i=0; i<arr.length; i++) {
if(i>=8) {
arr[i] ='*';
System.out.print(arr[i]);
} else {
arr[i] = str.charAt(i);
System.out.print(arr[i]);
}
}

class PracticeRun
package edu.kh.array.practice;
public class PracticeRun {
public static void main(String[] args) {
ArrayPractice arrEx = new ArrayPractice();
// arrEx.practice1(); // O
// arrEx.practice2(); // O
// arrEx.practice3(); // O
// arrEx.practice4(); // O
// arrEx.practice5(); // O
// arrEx.practice6(); // O
// arrEx.practice7(); // O
//
}
}