티스토리 뷰

2. 자바의 배열

1. 배열의 개념

참조형의 메모리 할당과 구조

String greeting; // String 자료형의 greeting 변수 선언 => greeting을 위한 메모리 공간이 할당됨
greeting = new String("Hello, Java!"); // greeting 변수에 값 할당
// String 객체를 생성하고, 객체의 시작 주소가 변수에 저장된다.

 

일차원 배열의 선언과 사용

// 배열 객체를 참조할 배열 변수 선언 => 배열 객체 생성

// 1. 배열 선언
데이터타입 배열변수명[];
데이터타입[] 배열변수명;

int scoreList;
int[] scoreList;

// 2. 배열 객체 생성
배열 변수명 = new 데이터타입[배열의 길이];
scoreList = new int[100];

// 3. 배열 선언과 생성을 한 문장으로 사용하기
int scoreLost[] = new int[100];
int[] scoreList = new int[100];

// 4.배열 생성과 초기화를 한 문장으로 표현하기
int[] scoreList = { 45, 80, 100, 59, 80 }; // 초기값을 나열해줌으로써 자동적으로 배열 객체 생성
scoreList = new int[] { 45, 80, 100, 59, 80 }; // 마지막으로 배열 객체를 명시적으로 생성하면서 초기 값 지정

length와 index

int[] scoreList = new int[100];
scoreList[0] = 1;
scoreList[99] = 100;

scoreList[100] = 98; // 100번째 인덱스는 존재하지 않기 때문에 오류

System.out.println(scoreList.length);
public class ObjectArrayTest {
    public static void main(String[] args) {
        String nameList[] = { "Java", "SQL", "Servlet" };
        System.out.println("nameList 길이 = " + nameList.length);
        System.out.println("< nameList 배열 요소 출력 >");
        System.out.println(nameList[0] + '\t');
        System.out.println(nameList[1] + '\t');
        System.out.println(nameList[2]);
//        nameList 길이 = 3
//        < nameList 배열 요소 출력 >
//        Java    
//        SQL    
//        Servlet
    }
}

 

2. 다차원 배열

// 동일한 길이로 생성된 일차원 배열을 참조하는 형태
scoreList = new int[3][4]; // 3 X 4

또는
scoreList = new int[3][];
scoreList[0] = new int[4];
scoreList[1] = new int[4];
scoreList[2] = new int[4];

// 서로 다른 길이로 생성된 이차원 배열도 가능
// 첫 번째 배열 첨자까지만 지정한다.
int[][] scoreList = new int[3][];
scoreList[0] = new int[2];
scoreList[1] = new int[3];
scoreList[2] = new int[4];

public class TwoDArrayTest2 {
    public static void main(String args[]) {
        // 서로 다른 길이로 생성된 일차원 배열을 참조하는 이차원 배열 형태
        String[][] scoreList = new String[3][];

        scoreList[0] = new String[2];
        scoreList[1] = new String[3];
        scoreList[2] = new String[4];
        System.out.println("< 2차원 배열의 인덱스 출력 >");

        for (int i = 0; i < scoreList.length; i++) {
            for (int j = 0; j < scoreList[i].length; j++) {
                scoreList[i][j] = "[" + i + "][" + j + "]요소";
                System.out.print(scoreList[i][j] + "\t");
            }
            System.out.println(" ");
        }

//        < 2차원 배열의 인덱스 출력 >
//        [0][0]요소    [0][1]요소     
//        [1][0]요소    [1][1]요소    [1][2]요소     
//        [2][0]요소    [2][1]요소    [2][2]요소    [2][3]요소     
    }
}

 

명령형 매개변수

public class CommandLineArgTest { // class 정의(선언)
    public static void main(String args[]) { // main() 메서드를 정의하여 class를 실행함
        // main(String args[] : 명령형 매개변수
        // => 문자의 배열을 매개 변수로 받아, 프로그램 실행 시 필요한 정보를 프로그램에 전달함
        // 실행될 코드
    }
}

main(String args[]) => 명령형 매개 변수

  • 문자열의 배열을 매개변수로 받아, 프로그램 실행 시 필요한 정보를 프로그램에 전달함
  • 사용자가 명령행 매개변수로 입력한 문자열의 순서에 따라 차례대로 배열에 저장됨
    • java CommandLineArgTest arg1 arg2
  • 명령행 매개변수에 해당하는 배열은 문자열 타입으로, 숫자 사용 시 문자열을 숫자로 변환해야 함
    • 자바 API에서 메서드 제공
      • Integer 클래스의 parseInt(), Double 클래스의 parseDouble()

 

명령형 매개변수가 필요한 프로그램 실행 방법

1. DOS 창에서 컴파일 후 실행

CommandLineArgTest.java 파일 경로로 이동

javac CommandLineArgTest.java
-----                    ----
컴파일 진행                프로그램 실행

java CommandLineArgTest 10 20

매겨변수로 받은 정수의 합 : 30

2. Eclipse 이용

Run -> Run Configurations -> Arguments 탭 이동

 

출처 - swexpertacademy.com/

댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
«   2024/11   »
1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30
글 보관함