[ 배열 ]

 

- 같은 자료형의 변수가 여러개 필요한 경우 연속적인 공간에 데이터를 나열해서 저장하고 첨자로 구분하는 자료구조

 

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

+ Recent posts