데이터의 이동 배열

둥냥둥냥둥·2023년 5월 25일
0
post-thumbnail

이번 학습목표는 여러 개의 데이터를 다루는 배열(array)을 학습하는 것이 목적이다.

  • 데이터를 이동하는 배열(array)
  • 배열을 사용하는 방법
  • 기본배열과 객체배열
  • 배열을 활용한 논리적인 사고력
  • 이미지를 표현하는 2차원 배열

데이터를 이동하는 배열(array)

하나의 자료형과 여러 개의 자료형의 비교

자료형 변수자료형[ ] 변수;
int : 정수한개int [ ] : 정수 여러개
int : a;int [ ] a;

[문제] Q. [정수 3]개를 저장 할 [변수를 선언]하고 모두 10을 저장하시요.

public class ArrayBasicTest {
    public static void main(String[] args) {
        
        int a, b, c;
        int sum;
        a = 10;
        b = 10;
        c = 10;
        sum = a+b+c;
        System.out.println("sum = " + sum);
    }
}

문제점 : 데이터의 수가 늘어나면? => 데이터처리가 복잡

그렇다면? 어떤 방법이 있을까?
먼저 정수 3개를 저장 할 기억공간을 만드는 방법을 생각해보자

[출처 : 박매일 => 패스트캠퍼스 Java 학습]


배열을 사용하는 방법

Q. 정수 5개를 저장 할 배열을 생성하시요.(ArrayMake.java)

public class ArrayMakeTest {
    public static void main(String[] args) {

        int [] a = new int[5];
        a[0] = 10;
        a[1] = 10;
        a[2] = 10;
        a[3] = 10;
        a[4] = 10;
        System.out.println(a[0]);
        System.out.println(a[1]);
        System.out.println(a[2]);
        System.out.println(a[3]);
        System.out.println(a[4]);

        System.out.println("\n"
                + "위 형식으로 하면 장점이 없다." + "\n"
                + "그러므로 반복문을 사용하자." + "\n");

        System.out.println("\n" +"------------------------------" + "\n");

        System.out.println("반복문(for, while)" + "\n");


        for (int i=0; i<a.length; i++){
            a [i] = 10;
            System.out.println(a[i]);
        }

Q. [책] 3권을 저장 할 [배열을 생성]히고 책 3권의 데이터를 저장하고 출력하시요.

        Book_[] books = new Book_[3];  // 책 3권을 저장하 배열을 생성
        books[0] = new Book_();
        books[0].title = "java";
        books[0].price = 30000;
        books[0].company = "한빛";
        books[0].author = "공상욱";
        books[0].page = 500;
        books[0].isbn = "11889900";

        System.out.print(books[0].title + books[0].price + books[0].company + books[0].author + books[0].page + books[0].isbn + "\n");


        books[1] = new Book_();
        books[1].title = "Java";
        books[1].price = 45000;
        books[1].company = "한빛";
        books[1].author = "공배";
        books[1].page = 400;
        books[1].isbn = "11338800";

        System.out.print(books[1].title + books[1].price + books[1].company + books[1].author + books[1].page + books[1].isbn + "\n");


        books[2] = new Book_();
        books[2].title = "JAVA";
        books[2].price = 60000;
        books[2].company = "한빛";
        books[2].author = "공열";
        books[2].page = 5000;
        books[2].isbn = "11667700";

        System.out.print(books[2].title + books[2].price + books[2].company + books[2].author + books[2].page + books[2].isbn + "\n" + "\n");

        for (int i = 0; i<books.length; i++){
            System.out.print(books[i].title + books[i].price + books[i].company + books[i].author + books[i].page + books[i].isbn + "\n");

        }
    }
}

1Q. 정수 5개를 저장 할 배열을 생성하고 모든 원소에 10을 저장하세요.
2Q. 정수 5개를 [배열에 초기화]하고 index 0번째와 index 3번째 값을 더하여 출력하시요
3Q. 아래의 char[] 배열에 APPLE 문자가 저장되어 있다
.

public static void main(String[] args) {
		// 1Q. 정수 5개를 저장 할 배열을 생성하고 모든 원소에 10을 저장하세요.
        float [] f = new float[5];
        f[0] = 10.5f;
        f[1] = 15.5f;
        f[2] = 16.5f;
        f[3] = 17.5f;
        f[4] = 18.5f;

        for (int i = 0; i<f.length; i++){
            System.out.println(f[i]);
        }

        // 2Q. 정수 5개를 [배열에 초기화]하고 index 0번째와 index 3번째 값을 더하여 출력하시요
        int[] a = {10,20,30,40,50};
        for (int i = 0; i<a.length; i++){
            System.out.println(a[i]);
        }

        int sum = a[0] + a[3];
        System.out.println("sum = " + sum);
        System.out.println(a.length);

        float[] b = new float[3];
        System.out.println(b[0]);
        System.out.println(b[1]);
        System.out.println(b[2]);

        // 3Q. 아래의 char[] 배열에 APPLE 문자가 저장되어 있다.
        // 배열을 초기화하는 방법(실습)
        // 대문자로 된 APPLE 소문자 apple 출력하시오.
        char[] c = {'A','P','P','L','E'};

        for (int i = 0; i<c.length; i++){
            System.out.print((char)(c[i]+32));

        }
    }
}

기본배열과 객체배열(실습)
Q. 영화3 편을 저장 할 [배열을 생성]하고 영화 3편의 테이터를 저장하고 출력하세요

public class ObjectArrayExam {
    public static void main(String[] args) {
    
        Movie_[] m = new Movie_[3];

        m[0] = new Movie_();
        m[0].mtitle = "A영화";
        m[0].mmajor = "공매일";
        m[0].mtime = 160;
        m[0].mlevel = 15;
        m[0].mday = "2023-05-23";

        m[1] = new Movie_();
        m[1].mtitle = "B영화";
        m[1].mmajor = "공매";
        m[1].mtime = 150;
        m[1].mlevel = 16;
        m[1].mday = "2023-05-23";

        m[2] = new Movie_();
        m[2].mtitle = "C영화";
        m[2].mmajor = "공일";
        m[2].mtime = 120;
        m[2].mlevel = 14;
        m[2].mday = "2023-05-23";

        // 반복문 사용
            for (int i = 0; i<m.length; i++){
                System.out.println(m[i].mtitle + "\t" + m[i].mmajor + "\t" + m[i].mtime + "\t" + m[i].mlevel + "\t" + m[i].mday  );
        }
    }
}

이미지를 표현하는 2차원 배열
Q. 행(row),열(column)로 데이터 저장하기(2차원 배열, 테이블구조, 행렬)(TwoDimArrayTest.java)

public class TwoDimArrayTest {
    public static void main(String[] args) {
    
        // Q. 2행 4열의 [정수형] [배열을 생성]하세요.
        int[][] a = new int[2][4];

        a[0][0] = 10;
        a[0][1] = 20;
        a[0][2] = 30;
        a[0][3] = 40;

        a[1][0] = 50;
        a[1][1] = 60;
        a[1][2] = 70;
        a[1][3] = 80;

        System.out.println(a[0][0] + "\t" + a[0][1] + "\t" + a[0][2] + "\t" + a[0][3] +
                "\t" + a[1][0] + "\t" + a[1][1] + "\t" + a[1][2] + "\t" + a[1][3]);

        for (int i = 0; i<a.length; i++){
            for (int j = 0; j<a[i].length; j++){
                System.out.print(a[i][j]);
            }
        }
    }
}

Quiz 1 . 동일한 데이터를 연속적으로 여러 개 저장할 수 있는 자료구조를 무엇이라고 하는가? → 배열(Array)
Quiz 2 . 배열의 길이를 구하는 속성을 쓰세요. → length
Quiz 3 . 3행 4열의 실수형 배열을 생성하는 코드를 작성하세요. → float[ ][ ]f=newfloat[3][4];
Quiz 4 . int[][] x=new int[3][5]; 주어진 배열에서 x.length 의 값과 x[0].length 의 값을 쓰세요. → 3, 5
Quiz 5 . int[][] a={{1,2,3,4},{5,6,7,8}}; 주어진 배열에서 a[1][3]의 값을 얼마인가? →8
Quiz 6 . Book[ ] b=new Book[3]; 주어진 배열 처럼 객체를 저장하는 배열을 무슨 배열이라고 하는가? → 객체배열(Object Array)

profile
Java 먹자

0개의 댓글