JAVA

210908_배열

요옫 2021. 8. 9. 10:05

배열

같은 자료 형들끼리 모아두는 하나의 묶음. 자바에서 하나의 배열은 하나의 객체로 인식된다. 

많은 양의 값(데이터)을 다룰 때 유용하며 배열의 각 요소는 서로 연속적이다.

배열을 선언한다고 해서 값을 저장할 공간이 생성되는 것이 아니라 배열을 다루는데 필요한 변수가 생성되는 것이다.

1차원 배열: 기본 자료형 배열(boolean,char,int등), 객체형 배열

다차원 배열: 1차원 배열이 여러 개 모인 것, 기본 자료형 배열, 객체형 배열

 

int score1=0, score2=0, score3=0, score4=0, score5=0, ;

--> int[]score=new int[5];  //5개의 int값을 저장할 수 있는 배열 생성

 

배열의 단계적 작업

1. 배열 선언 

char[]ch; 또는 char ch[];  //타입[] 변수이름;  이나  타입 변수이름[] 상관없음

2.배열 생성

ch=new char[4];  //[]안에 갯수 적어야 함

3. 배열 초기화

ch[0]='J';ch[1]='a';

ch[2]='v';ch[3]='a';

 

 

--------------------

(예제)

//배열선언

//기본형 배열은 객체로 인식 

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

int[] arr,arr2;  //배열로 선언만 해준 것

 

arr=new int[3];  //메모리를 할당

arr2=new int[5];  //할당만 해도 값은 자동초기화 0

 

//배열초기화(배열에 값을 넣는다)

arr[0]=10;

arr[1]=5;

arr[2]=20;

 

//출력

System.out.println("배열의 갯수: "+arr.length);  //0~2

 

//arr을 출력(반복문을 이용해서 일괄적으로 출력)

System.out.println("for문 출력...arr");

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

      //배열의 갯수를 세서 숫자로 넣는 것보다 arr.length 넣는 게 더 좋음

{

System.out.println(arr[i]);  //0,1,2를 의미하는 출력

}

 

    System.out.println("---------------------");

   

    System.out.println("for~each문 출력");  //그대로 출력할 때

    //for(임의변수명:출력할 변수명)

    for(int s:arr)

    {

    System.out.println(s);

    }

 

 

    System.out.println("====arr2출력 for====");

    //arr은 초기화 해주지 않아서 기본값 0이 출력됨

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

    {

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

    }

   

    System.out.println("---------------------");

    System.out.println("====arr2출력 foreach====");

    for(int a:arr2)

    {

    System.out.println(a);

    }

 

//결과

배열의 갯수: 3

for문 출력...arr

10

5

20

---------------------

for~each문 출력

10

5

20

====arr2출력 for====

0

0

0

0

0

---------------------

====arr2출력 foreach====

0

0

0

0

0

 

 

--------------------

(예제)

String[] str;

str=new String[4];

//string[] str=new string[4]; 와 같음

 

//초기화

str[0]="홍길동";

str[1]="전주연";

str[2]="송혜교";

str[3]="전지현";

 

//출력1(for)

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

         {

         System.out.println(i+"번째: "+str[i]);

         }

 

//출력2(foreach)

for(String a:str)

{

System.out.println(a);

}

 

//결과

0번째: 홍길동

1번째: 전주연

2번째: 송혜교

3번째: 전지현

홍길동

전주연

송혜교

전지현

 

 

--------------------

(예제)

 

char[] ch;

ch=new char[5];  //배열할당, 자동초기화

 

System.out.println("할당 개수: "+ch.length);

 

//초기값 출력

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

{

System.out.println(i+": "+(int)ch[i]);  //int로 형변환

}

 

//배열에 값넣기

ch[0]='A';

ch[1]=66;  //B

ch[2]=97;  //a

ch[3]='x';

ch[4]=49;  //숫자1

 

System.out.println("출력#for");

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

{

System.out.println(i+": "+ch[i]);

}

 

System.out.println("출력#foreach");

for(char a:ch)

{

System.out.println(a);

}

 

//결과

할당 개수: 5

0: 0

1: 0

2: 0

3: 0

4: 0

출력#for

0: A

1: B

2: a

3: x

4: 1

출력#foreach

A

B

a

x

1

 

 

--------------------

(예제)

 

//선언과 동시에 초기값 저장 가능

 

int[] arr={5,7,8,9,11,4,5};  //7개의 int형 객체 생성,초기화할 땐 {}

//int[]arr=new int[]{5,7,8,9,11,4,5};  이방법도 있음

System.out.println("갯수: "+arr.length);

 

System.out.println("**출력#1**");

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

{

System.out.println(i+1+":"+arr[i]);

//i+1하면 0번:arr값~이 아닌 1번:arr값~ 이렇게 나옴

}

 

System.out.println("**출력#2**");

for(int a:arr)

{

System.err.println(a);

}

 

//결과

갯수: 7

**출력#1**

1:5

2:7

3:8

4:9

5:11

6:4

7:5

**출력#2**

5

7

8

9

11

4

5

 

 

--------------------

(예제)

int[]arr1=new int[5];  //0으로 초기값

arr1[1]=10;

arr1[4]=34;

 

for(int n:arr1)

System.err.println(n);

 

 

int[]arr2= {23,11,56,77,99,88};  //선언시 값 직접 할당

System.out.println("배열 갯수: "+arr2.length);

 

System.out.println("출력#1");

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

{

System.out.printf("%5d",arr2[i]);

}

 

 

System.out.println("\n출력#2");

for(int a:arr2)

{

System.out.printf("%5d",a);

}

 

//결과

0

10

0

0

34

배열 갯수: 6

출력#1

   23   11   56   77   99   88

출력#2

   23   11   56   77   99   88

 

 

--------------------

(예제)

String []str1= {"장미","후리지아","다알리아","수국","국화"};

String []str2=new String[5];  //5개의 메모리 할당, null로 초기화

//str2에 문자열 넣기

str2[0]="레드";

str2[2]="블루";

 

//출력1 (str1)

System.out.println("str1");

 

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

{

System.out.print(str1[i]+"  ");

}

System.out.println();

 

for(String s:str1)

System.out.print(s+"  ");

System.out.println();

 

//출력2 (str2)

System.out.println("str2");

 

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

{

System.out.print(str2[i]+"  ");

}

System.out.println();

 

for(String s:str2)

{

System.out.print(s+"  ");

}

 

//결과

str1

장미  후리지아  다알리아  수국  국화  

장미  후리지아  다알리아  수국  국화  

str2

레드  null  블루  null  null  

레드  null  블루  null  null  

 

 

 

'JAVA' 카테고리의 다른 글

210809_배열의 합  (0) 2021.08.09
210809_배열 이용하여 숫자,이름 찾기  (0) 2021.08.09
210806_숫자의승,factorial  (0) 2021.08.06
210806_startswith,equals  (0) 2021.08.06
210806_예제/for,while  (0) 2021.08.06