TIL 03. 배열(Arrays)

crystal·2021년 6월 1일
0

Java

목록 보기
3/6
post-thumbnail

배열(array)

-- 그룹 데이터 자료 저장구조
-- 다차원 배열

>> 1차원
>> 2차원
>> n차원

-- 기본형, 객체형 지원타입

1차원 배열

1) 선언, 생성, 초기화(할당)

  1. 배열 선언
    [modifiers] 타입[] 배열명; // 권장 int[] nos;
    [modifiers] 타입 배열명[];
  2. 배열 생성
    배열명 = new 타입[배열크기]; // nos = new int[5];
  3. 배열요소 사용 : 값할당/값가져오기
    배열명[배열요소인덱스번호] = 값; // nos[0] = 100;
    배열명[배열요소인덱스번호]

-- 배열요소 인덱스번호 시작은 0 ~ 배열크기-1 범위
-- 배열명 : 참조변수
-- 배열명.length 변수 : 배열크기 저장변수
-- 예외

>> 프로그램 수행중에서 발생하는 문제(오류)
>> ArrayIndexOutOfBoundsException
>> 잘못된 배열요소 접근시에 발생하는 문제(예외)

2) 선언 + 생성, 초기화(할당)

  1. 배열 선언 및 생성
    [modifiers] 타입[] 배열명 = new 타입[배열크기];
  2. 배열요소 사용
    배열명[배열요소인덱스번호] = 값;

3) 선언 + 생성 + 명시적초기화

-- 주의사항 : {}; (반드시 ; 세미콜론을 표기해야함)
1. [modifiers] 타입[] 배열명 = new 타입[]{초기값1, 초기값x};

  1. [modifiers] 타입[] 배열명 = {초기값1, 초기값x};

new 배열 객체 생성 순서(절차)

  1. 메모리 할당
  2. 기본값 자동 초기화
    [3. 명시적 초기값 할당]
  3. 참조값(reference value) 할당

참고 : 자바 데이터타입 기본값

-- 기본형

>> 정수형 : 0
>> 실수형 : 0.0
>> 논리형 : false
>> 단일문자형 : 공백문자 '\u0000'

-- 참조형

>> 모든클래스(인터페이스), 배열
>> null
>> null의미 : 어떠한 객체도 참조하지않고있음

2차원 배열

-- 행과 열의 구조를 갖는 배열
-- 행마다 열의크기를 동일하게 생성
-- 행마다 열의크기를 다르게 생성
-- 2차원배열명.length : 2차원배열의 행크기 저장된 변수
-- 2차원배열명[행번호].length : 해당행의 열크기 저장된 변수
-- 행번호 시작 : 0
-- 열번호 시작 : 0

방법 1: 행마다 열의크기를 동일하게 생성

  1. 선언, 생성, 초기화
    -- 선언
    [modifiers] 타입[][] 2차원배열명; // 권장
    [modifiers] 타입 2차원배열명[][];

-- 생성
2차원배열명 = new 타입[행크기][열크기];

-- 초기화(배열요소 사용)
2차원배열명[행번호][열번호] = 값;

  1. 선언 + 생성, 초기화
    -- 선언 + 생성
    [modifiers] 타입[][] 2차원배열명 = new 타입[행크기][열크기];

-- 초기화(배열요소 사용)
2차원배열명[행번호][열번호] = 값;

  1. 선언 + 생성 + 초기화
    [modifiers] 타입[][] 2차원배열명 = new 타입[][]{
    {value1, value2, value3},
    {value1},
    {value1, value2, value3, valueX}
    }

[modifiers] 타입[][] 2차원배열명 = {
{value1, value2, value3},
{value1},
{value1, value2, value3, valueX}
}

방법2 : 행마다 열의크기를 다르게 생성

  1. 선언
    [modifiers] 타입[][] 2차원배열명;

  2. 생성
    // 행크기만 지정, 열크기는 각 행마다 각각 다르게 지정생성
    2차원배열명 = new 타입[행크기만지정][];

    2차원배열명[행번호] = new 타입[해당행의열크기지정];

  3. 배열요소 사용
    2차원배열명[행번호][열번호] = 값;

자바 프로그래밍 컴파일 방법

-- default package 컴파일방법
dos> javac [options] *.java
dos> javac HelloWorld.java
dos> javac -encoding utf-8 HelloWorld.java
=> 클래스이름.class (byte code)

-- package 컴파일방법
dos> javac -d output-dir-name *.java

자바 프로그래밍 실행 방법

-- 자바실행 : .class 바이트코드의 확장자를 지정해서는 안됨(. 패키지구분자)

-- default package 실행방법
dos> java [options] main()메서드가있는실행클래스명
dos> java HelloWorld

-- package 실행방법
dos> java [options] 패키지명.패키지명.main()메서드가있는실행클래스명
dos> java HelloWorld

-- main() 메서드 아규먼트 전달 실행방법
dos> java [options] main()메서드가있는실행클래스명 아규먼트데이터1 "아규먼트 데이터x"
=> jvm이 실행시에 클래스명뒤에 공백을 구분자로해서 해당크기만큼의 String 타입의 배열객체를 생성해서 순서대로 배열요소 값을 할당

Wrapper API

-- 자바의 기본형 타입을 객체형타입으로 변환하는 클래스
-- 문자열형식의 숫자데이터를 int 타입으로 변환 예시

>> int teamLenth = Integer.parseInt(args[0]); 
profile
어제보다 더 나은 오늘의 내가 되자 ✧ʕ̢̣̣̣̣̩̩̩̩·͡˔·ོɁ̡̣̣̣̣̩̩̩̩✧ 

0개의 댓글