**배열(Array - List)
=> '동일한 자료형'으로 이루어진 데이터의 '연속적인 집합'(0개이상)
(연속된 메모리 공간이 충분하지 않으면 생성이 안됨)
=> 사용이유 : 여러개의 데이터를 하나의 이름으로 관리 - Collection([List, Set] : 열, [Map, Class - Instance] : 행)
=> 하나의 열의 만드는 개념으로 자료형은 반드시 동일, 비교가능(의미가 같은)한 데이터를 모아야함
=> 초기 Size 설정시 변경 불가
* 배열은 데이터의 연속적인 집합
=> 연속된 메모리 공간이 충분치 않으면 생성X
* 배열은 크기 변경이 안됨
=> 배열의 크기를 변경(데이터 삽입, 삭제등)시 새로운 배열을 만들어 기존 데이터 복사
1. 배열 생성
1) 생성할 때 데이터를 바로 대입
ex) 'Data 1의 자료형' + [ ] + '배열명' = { 데이터 나열 };
=> 데이터 1개의 자료형 + 배열명 + [ ] 도 가능
=> Java에서는 [ ]뒤에 하는 것을 비추천 (int [] ar = {20, 30, 40};
2) 일단 배열을 만들고, 나중에 값을 대입
ex) 'Data 1개의 자료형' + [ ] + '배열명' = new + Data 1개의 자료형[개수];
=> int [] ar = new int[3];
=> ar[0] = 20; ar[1] = 30; ar[2] = 40;
2. 배열의 Data에 접근
1) 배열 명
=> 배열의 데이터들이 저장된 곳의 해시코드(구별하기 위한 코드 - Identifier)
2) 배열에 저장된 각각의 데이터
ex) 배열명 [인덱스]
=> 인덱스는 정수, 0부터 시작하며, 데이터 개수 -1까지
=> 인덱스 잘못 설정시 ArrayIndexOutOfBoundsException 발생
=> 배열을 생성하지 않고 사용시 NullPointerException 발생
3) 배열명.length
=> 배열의 데이터 개수를 정수로 리턴
3. 기술통계 알고리즘
=> 숫자 배열을 가지고 가장 많이 하는 작업(기술통계 수치계산)
=> 데이터 갯수, 합계, 평균, 최대값, 최소값, 표준편차, 분산, 중간값 등
1) 합계
=> 합계를 저장할 변수를 생성하고 초기화
(대부분 0으로 초기화, 특별한 경우는 X - 몇몇 데이터가 규칙에 맞지 않을 경우 예외적 데이터의 합을 먼저 저장)
=> 배열의 데이터를 순회하며, 조건에 맞는 데이터를 합계 변수에 계속 더함
3) 평균
=> 합계 / 계수
=> 나누는 수가 0이 아닌 경우에만 수행
=> 정수/ 정수 = 정수 이므로 소수를 만들어야 하는지 확인
4) 최대값
=> 최대값을 저장할 변수를 생성 및 초기화
(초기화시 데이터의 범위중 가장 작은 값으로 하던가 배열의 첫번째 데이터로 초기화)
=> 배열을 순회하면서 최대값과 배열의 데이터를 비교, 배열의 데이터가 최대값 보다 크면 변수값 변경
5) 최소값
=> 최소값을 저장할 변수를 생성 및 초기화
(초기화시 데이터의 범위중 가장 큰 값으로 하던가 배열의 첫번째 데이터로 초기화)
=> 배열을 순회하면서 최소값과 배열의 데이터를 비교, 배열의 데이터가 최소값 보다 작으면 변수값 변경
4. 배열의 인덱스
=> Java에서 배열의 인덱스는 0부터 시작(시작점이 0이기에 프로그램 작성시 실수가 발생)
ex) 1년 12개월의 날수를 배열에 저장
int [] month = {31, 28, 31, 30, 31, 31, 30, 31, 30, 31};
//4월의 날수 : month[3]
// 첫번째 데이터로 의미없는 값을 저장하고, 두번째 데이터부터 실제 데이터를 저장
// 우리가 일반적으로 부르는 인덱스와 일치시킬수 있음
int [] month = {0, 31, 28, 31, 30, 31, 31, 30, 31, 30, 31};
//4월의 날수 : month[4]
5. 다차원 배열
=> 배열의 차원이 2개 이상인 배열
(이름 [ ] 배열명 : 이렇게 [ ] 가 1개인 배열을 1차원 배열이라고 함)
(이름 [ ] [ ] 배열명 : 배열의 배열 - 2차원 배열[matrics - 행렬])
=> 배열의 차원은 무한대로 가능]
(일반적으로 3차원 이상은 거의 사용하지 않음)
=> 배열의 차원은 프로그램에서 배열을 사용하기 쉽게 접근하기 위한 개념이고, 메모리에는 일차원 배열로 저장
=> 행렬은 반드시 접근 방식을 알아두어야 함
(행렬을 1차원으로 접근하는 것도 중요)
=> 그림을 프로그램에서는 행렬로 간주(머신러닝의 기본 데이터 처리 단위는 행렬)
1) 2차원배열 생성
ex) 초기 Data O : Data를 저장할 자료형 + [ ][ ] + 배열 명 = {{Data1}, {Data2}, {Data3}...};
초기 Data X : Data를 저장할 자료형 + [ ][ ] + 배열 명 = new 자료형 + [행갯수] + [열갯수];
초기 Data X && 행마다 열의 갯수가 다름 : Data를 저장할 자료형 + [ ][ ] + 배열 명 = new 자료형 + [행갯수];
배열명[행번호] = new 자료형 + [열갯수];
2) 2차원 배열의 데이터 접근
ex) 배열명 + [행번호] + [열번호] : 행번호, 열변호는 0부터 시작
3) length 속성
ex) 배열명.length : 행의 갯수, 배열명[행번호].length : 열의 갯수
4) 실제 저장
=> 하나의 행에 접근, 그 행에서 열번호를 변경하며 Data를 1차원으로 저장
6. 배열의 데이터 초기화
=> 배열을 데이터 없이 공간만 생성시, 자동 초기화
=> 숫자 배열은 0, boolean 배열은 false로 초기화
=> 숫자, boolean이 아닌 데이터 배열은 null로 초기화
7. System.out.printf
=> 데이터를 서식에 맞추어서 출력하는 역할 - C언어의 printf
ex) System.out.printf("서식", 데이터 나열);
=> 서식은 %로 시작
=> 서식의 개수와 데이터의 개수는 일치해야하고, 자료형도 동일
1) 자료형
- %d, %i : 정수
- %f : 실수
- %c : char
- %b : boolean
- %s : String
2) 자릿수 설정
- %숫자d : 숫자만큼 자리를 확보하고 오른쪽에서부터 출력(ex- "%3d", 10 => 빈칸 10)
- %0숫자d : 빈자리는 0으로 채움 (ex- "%03d", 10 => 010)
- %전체자릿수.소수자릿수f : 소수자리 뒤에서 반올림해서 출력(전체 자릿수 생략 가능)
(ex- "%3.2f", 4.5678 => 4.57 / "%.2f", 4.5678 => 4.57)
**Git hub에서 자바 프로젝트 가져오기
0. 수업자료 다운(Github)
https://github.com/itggangpae/javaapplication
1. 프로젝트를 만든 파일들을 다운로드
=> 웹 브라우저에 주소를 입력하면 github에 접속가능
2. Eclipse에 실행하수 있도록 eclipse 프로젝트로 가져오기
1) File 메뉴에서 Import를 클릭
2) Git 메뉴에서 Projects from git을 선택
3) Clone URI를 선택하고 Next
4) URI 란에 Github 주소를 입력 후 Next
5) Local Destination에서 에러가 나면 이름을 변경
=> 기존에 사용했던 이름이라서 git에 남아있기 때문(변경시 저장 가능)
=> [user] 디렉토리 안의 [git] 디렉토리의 Repository를 삭제(꼭 해당 이름을 써야할때)
'수업 정리' 카테고리의 다른 글
9일차 수업정리(module, Recursion, Constructor) (0) | 2020.04.17 |
---|---|
8일차 수업 정리(Class, 변수, Method) (0) | 2020.04.16 |
6일차 수업 정리 (0) | 2020.04.13 |
5일차 수업 정리 (0) | 2020.04.10 |
4일차 수업 정리 (0) | 2020.04.09 |