ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • Java | Array 배열
    JAVA/JAVA 2020. 1. 28. 22:30

    Array 배열

    같은 타입(자료형)의 여러 변수를 하나의 대표적인 변수로 묶어주는 것

    ↔ 클래스: 다른 타입의 여러 변수를 하나의 대표적인 변수로 묶어주는 것(C 언어에서의 구조체) + 메소드


    배열 특성

    • 많은 양의 데이터를 다룰 때 유용함
      ↔ 변수의 양이 많아지면 관리하기가 어려움
    • 배열의 각 요소는 서로 연속적임
      0부터 시작하는 인덱스번호로 구분
    • 변수가 메모리에 연속적으로 저장되기 때문에 처리속도가 향상됨
      ↔ 기본적으로 변수는 메모리에 무작위로 할당됨
    • 참조형(=객체형, 클래스형) 자료형
      참조형 자료형에는 Class, Array, Interface 등이 포함됨
    • 자동 초기화
      일반 변수는 반드시 값을 초기화해야 하지만, 배열은 자동으로 초기값이 설정됨
      int → 0, double → 0.0, float → 0.0f, boolean → false

    배열 종류

    1. 고정 배열: 크기가 처음부터 정해져 있는 배열
      배열의 크기를 늘이거나 줄일 수 없음, 기본적인 배열
    2. 가변 배열(동적 배열): 크기가 입력받은 데이터의 양에 따라 늘어나거나 줄어들 수 있음
      → ArrayList 컬렉션

    차원에 따른 배열 종류

    • 1차원 배열 : 데이터가 선처럼 일렬로 연속적으로 저장되어 있는 배열
    • 2차원 배열 : 데이터가 표와 같이 면으로 저장되어 있는 배열
      배열의 요소가 배열인 경우
    • 3차원 배열 : 데이터가 정육면체처럼 입체적으로 저장되어 있는 배열
      배열의 요소가 배열이고 그 배열의 요소가 배열인 경우

    ※ 2차원 배열까지는 사용할 수 있어야 함


    형식

    자료형 배열명[] = new 자료형[개수];
    // 자료형[] 배열명 으로도 작성 가능
    
    // 배열을 생성하면서 값 초기화
    자료형[] 배열명 = {값1, 값2, 값3,,,,};

    기본 구조

    public class ArgTest {
                            // args라는 이름의 String형 배열이 매개변수로 main()메소드에 전달됨
        public static void main(String[] args) {
    
            // 배열 생성
            int[] suArray = new int[4];
    
             // 배열 값 저장
            suArray[0] = 1;
            suArray[1] = 2;
            suArray[2] = 3;
    
             // 배열 값 출력
            System.out.println(suArray[0]);    // 1
            System.out.println(suArray[1]);    // 2
            System.out.println(suArray[2]);    // 3
    
             // 자동 초기화로 인해서 0이 저장되어 있음
             System.out.println(suArray[3]); // 0
    
             // 배열도 객체이기 때문에 주소값이 출력됨
            System.out.println(suArray);  // [I@15db9742
        }
    
    }

    가변 배열_Eclipse 활용

    Eclipse의 변수 설정을 사용해서 배열의 크기를 조정

    상단 메뉴 Run → Run Configurations → Java Application에서 클래스 선택
    → Aruguments 탭 → Program aruguments에 변수 입력

    변수 입력 형식: 변수1 변수2 변수3
    → 각각의 변수를 띄어쓰기로 구분함

    설정한 변수는 main()메소드에 매개변수로 전달됨

    public class ArgTest4 {
                            // String 배열 x를 매개변수로 main()에 전달, 변수: 1 2 3 
        public static void main(String[] x) {
    
             // 합계를 구할 변수
            int sum;
    
             // 배열 x의 요소들을 각각 str1 ~ str3 변수에 저장
            String str1 = x[0];
            String str2 = x[1];
            String str3 = x[2];
    
             // 각각의 변수에 저장된 값 출력
            System.out.println("str1: " + str1);    // str1: 1
            System.out.println("str2: " + str2);    // str2: 2
            System.out.println("str3: " + str3);    // str3: 3
    
             // String은 int로 강제 형변환 할 수 없기 때문에 integer.parseInt() 메소드 사용 
            int int1 = Integer.parseInt(str1);
            int int2 = Integer.parseInt(str2);
            int int3 = Integer.parseInt(str3);
    
             // int로 변경한 값들을 sum에 더함
            sum = int1 + int2 + int3;
    
             // sum 출력
            System.out.println("합계: " + sum);    // 합계: 6
        }
    
    }

    Integer.parseInt() & Integer.toString()

    Integer 클래스에 내장되어 있는 메소드 parseInt()는 매개변수로 주어진 String 형태의 숫자를 int로 반환,
    toString() 메소드는 매개변수로 주어진 int 형의 숫자를 String으로 반환

    public class CheckType {
        // 생성자 함수를 이용해서 자료형 확인, 자료형에 따른 문구가 출력되도록 함
        CheckType(String a){
            System.out.println(a + "의 자료형은 String입니다!");
        }
    
        CheckType(int b){
            System.out.println(b + "의 자료형은 Int입니다!");
        }
    
        public static void main(String[] x) {
            // int형 숫자를 String형 문자열로 형변환
            int fromInt = 10;
            String toString = Integer.toString(fromInt);
            CheckType ct1 = new CheckType(toString);
            // 10의 자료형은 String입니다!
    
             // String형 문자열을 int형 숫자로 형변환
            String fromString = "20";
            int toInt = Integer.parseInt(fromString);
            CheckType ct2 = new CheckType(toInt);
            // 20의 자료형은 Int입니다!
    
        }
    
    }

    ※ Java에는 JavaScript에서의 typeof 같은 메소드가 없기 때문에 생성자를 이용해서 자료형을 확인해 볼 수 있음


    배열에 대해 살펴보았습니다.

    배열은 같은 자료형의 여러 데이터를 다룰 때 아주 효율적으로 사용될 수 있습니다.

    따라서 배열의 기본 활용을 익혀두는 것은 큰 도움이 될 것입니다.

    또한 Integer 클래스의 parseInt(), toString()과 같은 메소드들은

    int와 String간 형변환을 할 때 유용하게 사용할 수 있겠습니다.

    'JAVA > JAVA' 카테고리의 다른 글

    Java | Scanner  (0) 2020.01.28
    Java | Array 배열 활용, 확장 for문  (0) 2020.01.28
    Java | Static 정적 변수 & 정적 메소드  (0) 2020.01.28
    Java | Java 메모리 구조  (0) 2020.01.28
    Java | This  (0) 2020.01.22

    댓글

Designed by Tistory.