본문 바로가기
  • developer
  • challenge
이론수업

자바-Array 이론수업

by 빵승 2024. 1. 8.

import java.util.Scanner;

 

public class Main {

 

public static void main(String[] args) {

 

Scanner scan=new Scanner(System.in);

 

//java언어 에서 배열은 객체임

 

//int형 변수 3개를 배열로 만들기

 

int[]aaa=new int[3];

 

//배열 요소값 출력해보기

System.out.println(aaa[0]); //배열요소는 0으로 초기화 된거임

 

 

System.out.println(aaa[1]);

System.out.println(aaa[2]);

//System.out.println(aaa[3]); error 인덱스 범위를 벗어남 컴퓨터는 0부터 시작 3개 만들면 0 1 2번방이 존재하므로 3은 없다

 

System.out.println(aaa); //자바에서 참조변수를 출력하면 주소가 나오지 않고 그 참조변수가 참조하는 객체의 정보가 출력됨

//toString()기능이 자동 발동함.

//배열요소에 값을 대입해보기

aaa[0]=10;

aaa[1]=20;

aaa[2]=30;

 

//요소값 출력해보기

 

System.out.println(aaa[0]);

System.out.println(aaa[1]);

System.out.println(aaa[2]);

 

//요소의 인덱스번호를 변수에 대입된 값으로 적용할수 있습니다

 

int a=0;

System.out.println(aaa[a]); //0번방을 a로 대입해서 불른것

 

a=1;

System.out.println(aaa[a]);

 

a++;

System.out.println(aaa[a]);

 

//반복문으로 배열요소들의 값을 순차적으로 출력해보기

for(int i=0;i<3;i++) {

System.out.println(aaa[i]);

}

 

//배열객체에는 배열요소의 개수(길이:length)를 저장하고 있는 변수가 이미 존재함

System.out.println("배열 길이(요소개수) : "+aaa.length);

 

for(int i=0; i<aaa.length; i++) {

System.out.println(aaa[i]);

}

 

//다른 자료형의 배열객체 만들어 보기

 

double[] bbb=new double[3];

 

for(int i=0; i<bbb.length; i++) {

System.out.println(bbb[i]);

}

 

boolean[] ccc= new boolean[4];

 

for(int i=0; i<ccc.length; i++) {

System.out.println(ccc[i]);

}

 

//배열객체도 만들면서 미리 값을 초기화 해놓기!

 

int[] aaa2=new int[] {10,20,30}; //배열 요소개수는 초기화한 값의 개수대로 만들어짐

//int[] aaa2=new int[3] {10,20,30}; error 초기화할때 개수지정 안됨

 

System.out.println("배열길이 : "+aaa2.length);

System.out.println(aaa2[0]);

System.out.println(aaa2[1]);

System.out.println(aaa2[2]);

 

//배열객체로 문자열객체처럼 매우 자주 사용되기에 축약 표기법을 제공함

int[] aaa3= {100,200,300}; //자동 new int[] String,int,Array 만 축약 표현가능

for(int i=0; i<aaa3.length; i++) {

System.out.println(aaa3[i]);

}

 

//다른 자료형의 배열객체들도 초기화 해보기

 

double[] bbb2=new double[] {3.14, 5.57, -7.45};

for(int i=0; i<bbb2.length; i++) {

System.out.println(bbb2[i]);

}

 

boolean[] ccc2=new boolean[] {true, false, false, 5>3};

for(int i=0;i<ccc2.length; i++) {

System.out.println(ccc[i]);

}

 

char[] ddd2=new char[] {'H', 'e', 'l', 'l','o'};

for(int i=0;i<ddd2.length; i++) {

System.out.println(ddd2[i]);

}

for(int i=0;i<ddd2.length; i++) {

System.out.print(ddd2[i]);

}

System.out.println();

 

//배열객체를 만들때 배열요소의 개수를 변수값으로 지정해보기

 

int b=5;

int[] aaa4= new int[b] ;

System.out.println("배열길이 : "+aaa4.length);

 

//배열 길이를 키보드로 입력 받을 수도 있겠군요

 

// int n=scan.nextInt();

// int[] aaa5= new int[n] ;

// System.out.println("배열길이 : "+aaa5.length);

 

//배열요소의 값들도 키보드로 입력받아보기

 

// int[] aaa6=new int[3];

// aaa6[0]=scan.nextInt();

// aaa6[1]=scan.nextInt();

// aaa6[2]=scan.nextInt();

//

// System.out.println(aaa6[0]);

// System.out.println(aaa6[1]);

// System.out.println(aaa6[2]);

 

//반복문으로 요소값들을 키보드로 입력해보기

 

int[] aaa6=new int[3];

 

for(int i=0; i<aaa6.length; i++) {

System.out.print("input:");

aaa6[i]=scan.nextInt();

 

}

 

int total=0;

for(int i=0; i<aaa6.length; i++) {

total=total+aaa6[i];

 

}

 

System.out.println("총합:"+total);

System.out.println("평균:"+(double)total/aaa6.length);

 

int max;

// if(aaa6[0]>aaa6[1] && aaa6[0]>aaa6[2]) max=aaa6[0];

// else if(aaa6[1]>aaa6[2]) max=aaa6[1];

// else max=aaa6[2];

 

 

max=aaa6[0];

// if(aaa6[1]>max) max=aaa6[1]; 같은게 반복 되니까 반복문 사용

// if(aaa6[2]>max) max=aaa6[2];

//

for(int i=0; i<aaa6.length; i++) {

if(aaa6[i]>max) max=aaa6[i];

 

}

System.out.println("최대값 : "+max);

 

//배열 요소값 복사

 

int n1=10;

int n2=n1; //이거는 값 복사

System.out.println("n1:"+n1);

System.out.println("n1:"+n2);

 

int[] aa1=new int[] {10,20,30};

int[] aa2=aa1; //이거는 값을 복사 한게 아니라 주소를 복사한것-같은 배열객체를 공유한것

 

aa2[0]=100;

System.out.println(aa1[0]);

System.out.println(aa2[0]);

 

//배열객체를 복사하려면 원본배열객체와 같은 크기를 가진 배열객체를 새로만들어 요소값만 복사해야함

 

int[] aa3= new int[aa1.length];

// aa3[0]=aa1[0];

// aa3[1]=aa1[1];

// aa3[2]=aa1[2]; 이거를 for으로 요약

 

for(int i=0; i<aa3.length; i++) {

aa3[i]=aa1[i]; //aa3[i]=aa1[2-i]; 역순으로 바꾼것

 

}

for(int i=0; i<aa3.length; i++) {

System.out.println(aa3[i]);

}

//String s=null; null(널) 이라고 부르고 아무것도 없다 라는 의미