7. Array

(1) 정의

   1) 많은 양의 데이터를 다루기 위한 방법(변수를 줄이기 위해)

   2) 같은 이름으로 정의된 연속적인 메모리 공간

int kor1, eng1, mat1;

int kor2, eng2, mat2;

int kor3, eng3, mat3;


int[] a1, a2, a3;

//배열은 반복문을 사용할 수 있음

(2) 문법

   1) 자바에서는 배열을 객체(=클래스)로 취급한다.

int[] a1 = new int[3];

int[] a2 = new int[3];

int[] a3 = new int[3];

//a1 참조변수 -> 인스턴스 해서


(3) 활용

   1) 검색

- Sequential Searching -순차검색

- Binary searching - 이분 검색

데이터의 중간위치를 구한다

해당 데이터가 찾고자 하는 데이터인지 확인.


For(int row=0; row<data.length-1; row++){

For(int col = row+1; col<data.length; col++){

If(data[row] < data[col]) // {

Int temp = data[row];

Data[row] = data[col];

Data[col]

}

}

}


2) 정렬 (오름차순,내림차순)

   (1) Swap algorithm(교체 알고리즘)

Int a = 10, b=5, c; //동시처리가 안되므로 변수 하나 더 생성

C=a;

A=b;

B=c;

   (2) 선택정렬 :기준을 하나 선택해서 정렬해 나가는 것

데이터 중 기준 선정하기(최대값/최소값, 맨끝)

->데이터값이아닌 위치를 기준

   (3) 버블정렬 :서로 이웃하는 것끼리 정렬

   (4) 삽입정렬



(4) 다차원 배월( 2차원 이상의 배열)

   1) 1차원 배열 :각각의 변수를 한 줄로 된 연속적인 공간

   2) 2차원 배열 : 1차원 배열을 하나로 합친 것

   3) 3차원 배열 : 2차원 배열을 하나로 합친 것

   4) 1차원 배열과 다차원 배열의 차이 

- 1차원 배열 :값에 직접 접근방식 (메모리에 접근)

- 다차원 배열 :주소(참조)에 의한 간접 접근


Int[] a1 = new int[3];

Int[] a2 = new int[3];

Int[] a3 = new int[3];

Int[][] = mew int[3][3];


(5) 불규칙 배열 (다차원 배열) ->동적 바인딩


Char[] name1 = {‘T’, ‘o’,‘m’};

Char[] name2 = {‘J’, ‘a’,‘n’, ‘e’};

Char[] name3 = {‘J’, ‘o’,‘h’, ‘n’, ‘s’, ‘o’, ‘n’};

Char[] name4 = {‘홍’, ‘길’,‘동’};


Char[][] names = new char[4][7];


Names[0] = new char[3];

Names[1] = new char[4];

Names[2] = new char[7];

Names[3] = new char[3];


(6) String

1) java.lang

2) 자바는 문자열을 객체로 취급한다.

3) 동일한 문자열(인스턴스)을 중복해서 생성하지 않는다.

  ->메모리 낭비를 하지 않는다.

단 new를 통해서 생성할 경우 강제로 인스턴스 생성

4)절대 수정 불가(읽기 전용)

5) StringBuffer 수정 가능


(7) CommandLine Argument(명령행 인자)

프로그램 실행할 때 넘어가는 인자.


*Scanner

 - java.util

알맹이 기능이 없고 다른 클래스의 도움을 주는 역할을 한다.


1차원배열은 노가다필요. 2차원배열은 가독성이 떨어짐.


데이터 보관 원초적인 방법

1) 변수화

장점 :쓰기편함

단점 :많은 양의 데이터 저장 x

2) 배열

장점 :많은 양의 데이터를 저장 가능

단점 :크기 정해야함( 많이 ->낭비/적음 ->부족)

같은 형식 ( 정수는 정수끼리 , 실수는 실수끼리)

삽입, 삭제 거이 불가능(데이터가 많으면 많을수록 불가능)

+ Recent posts