배열
같은 자료 형들끼리 모아두는 하나의 묶음. 자바에서 하나의 배열은 하나의 객체로 인식된다.
많은 양의 값(데이터)을 다룰 때 유용하며 배열의 각 요소는 서로 연속적이다.
배열을 선언한다고 해서 값을 저장할 공간이 생성되는 것이 아니라 배열을 다루는데 필요한 변수가 생성되는 것이다.
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 |