[ 배열 ]
- 같은 자료형의 변수가 여러개 필요한 경우 연속적인 공간에 데이터를 나열해서 저장하고 첨자로 구분하는 자료구조
1) 1차원배열
- 첨자가 하나인 경우
- 형식
자료형 []배열명=new 자료형[크기]
- 예) int []a=new int[5]; //정수가 다섯개 저장될 배열 생성
2) 2차원배열
- 첨자가 두개인 경우
- 형식
자료형 [][]배열명=new 자료형[행첨자][열첨자]
- 예)
int [][]a=new int[3][4];//정수가 저장될 공간이 3행 4열로 12개가 생성
a[0][0]=100;
a[0][1]=90;
...
ex> 배열 선언 후 값 값넣기 / 출력 후 초기화 / 합구하기
class MyTest01_Array
{
public static void main(String[] args)
{
//정수가 저장될 공간(배열)이 다섯개 만들어짐
int []a=new int[5];
a[0]=100;
a[1]=80;
a[2]=70;
a[3]=50;
a[4]=90;
//배열에 저장된 데이터 출력하기
for(int i=0;i<5;i++)
{
System.out.print(a[i]+" ");
}
System.out.println();
//배열은 아래처럼 초기화가 가능하다.
int []b={100,80,50,60,60,30,40,50,100};
int sum=0;
//배열합 구하기
System.out.println("배열크기:"+b.length);
for(int i=0;i<b.length;i++)
{
sum=sum+b[i];//sum+=b[i];
System.out.print(b[i]+" ");
}
System.out.println("배열합:"+sum);
}
}
ex> 배열값 중 최고값, 최소값 구하기
class MyTest02_Array
{
public static void main(String[] args)
{
int a[]={88,99,100,90,50};
System.out.println("저장된 배열 요소 값");
for(int i=0;i<a.length;i++)
{
System.out.print(a[i]+" ");
}
System.out.println();
int max=a[0];
//배열의 요소중 가장 큰 값 구하기
for(int i=0;i<a.length;i++)
{
if(a[i]>max){
max=a[i];
}
}
System.out.println("배열 최대값:"+max);
//배열의 최소값을 구해 보세요.
int min=a[0];
for(int i=0;i<a.length;i++)
{
if(a[i]<min){
min=a[i];
}
}
System.out.println("배열 최소값:"+min);
}
}
ex> 키보드로 입력받은 데이터 배열에 저장하고 출력하기
import java.util.Scanner;
class MyTest03_Array
{
public static void main(String[] args)
{
Scanner scan=new Scanner(System.in);
int []a=new int[10];
System.out.println("10명의 점수 입력");
for(int i=0;i<a.length;i++)
{
a[i]=scan.nextInt();
}
System.out.println("입력된 점수");
for(int i=0;i<a.length;i++)
{
System.out.print(a[i]+" ");
}
// 점수가 80점 이상인 학생의 수를 구해 보세요.
int cnt=0;
for(int i=0;i<a.length;i++)
{
if(a[i]>=80){
cnt++;
}
}
System.out.println("\n80점 이상인 학생수:"+cnt);
}
}
ex>배열을 오름차순 정렬하기
class MyTest04_Sort
{
public static void main(String[] args)
{
int []a={30,20,10,40,50};
int tmp=0;
for(int i=0;i<4;i++)
{
for(int j=i+1;j<5;j++)
{
if(a[i]>a[j]){
tmp=a[i];
a[i]=a[j];
a[j]=tmp;
}
}
}
System.out.println("오름차순 정렬후");
for(int i=0;i<5;i++){
System.out.print(a[i]+" ");
}
}
}
ex> 2차원배열
class MyTest05_Array
{
public static void main(String[] args)
{
int[][]a={
{1,2,3},
{4,5,6},
{7,8,9}
};
for(int i=0;i<3;i++){
for(int j=0;j<3;j++){
System.out.print(a[i][j]+" ");
}
}
System.out.println();
}
}
ex> 다섯명 아이디 입력받은 후 배열에 저장하고 출력하기
import java.util.Scanner;
class MyTest06_StringArray
{
public static void main(String[] args)
{
Scanner scan=new Scanner(System.in);
//문자열 5개가 저장될 배열선언
String []ids=new String[5];
System.out.println("다섯명의 아이디를 입력하세요");
for(int i=0;i<ids.length;i++){
ids[i]=scan.next();
}
System.out.println("배열에 저장된 아이디");
for(int i=0;i<ids.length;i++){
System.out.println(ids[i]);
}
//문자배열에 값 초기화 하기
String name[]={"홍길동","김철수","김영희"};
for(int i=0;i<name.length;i++){
System.out.println(name[i]);
}
}
}
ex> 2차원 문자배열
회원의 이름을 입력받아 회원의 주소를 출력해 보세요.
(이름은 중복되지 않는다고 가정)
예)
회원이름:홍길동
홍길동 님의 주소 [서울] 입니다.
import java.util.Scanner;
class MyTest07_Array
{
public static void main(String[] args)
{
String [][]mem={
{"홍길동","서울시 송파구.."},
{"김아무","대전시 ..."},
{"김유신","부산시 ..."}
};
Scanner scan=new Scanner(System.in);
System.out.println("주소를 검색할 회원이름 입력");
String name=scan.next();
boolean find=false;
for(int i=0;i<3;i++)
{
if(mem[i][0].equals(name))
{
System.out.println(name +" 님의 주소는 ["+ mem[i][1] +"]입니다.");
find=true;
break;
}
}
//이름을 찾지 못했을때
if(!find){
System.out.println(name +" 회원님이 존재하지 않아요!");
}
}
}
'JAVA' 카테고리의 다른 글
Overloading (0) | 2014.09.12 |
---|---|
클래스( class ) (0) | 2014.09.12 |
반복제어문( while문 ) (0) | 2014.09.12 |
반복제어문( for문 ) (0) | 2014.09.12 |
switch문 (0) | 2014.09.12 |