배열
-데이터를 연속된 공간(메모리)에 나열하고 각 데이터에 인덱스(index) 부여한 자료구조
-같은 타입의 데이터만 저장할 수 있음
-한 번 생성된 배열은 길이를 늘리거나 줄일 수 없음
배열 선언
- 2가지, 타입 뒤에 [], 변수이름 뒤에 [], 보통은 타입 뒤에 []가 많음
- 배열은 참조타입이기 때문에 번지가 저장됨
- 참조할 배열 객체 없는 경우 배열 변수는 null 값으로 초기화
배열 생성
- 값 목록으로 배열 생성
타입[] 변수 = { 값0, 값1, 값2, 값3, .... }
이 방식은 변수 선언 다음 값 목록을 지정해줘야함
배열 변수 선언한 뒤에 다른 실행문에서 값 목록으로 배열 생성 불가능
타입[] 변수;
변수 = { 값0, 값1, 값2, 값3, ... }; (X) 컴파일 에러
배열 변수 미리 선언한 후 값 목록이 나중에 결정되는 경우: new연산자 사용하여 값 목록 지정
변수 = new 타입[] { 값0, 값1, 값2, 값3, ... };
String[] names = null;
names = new String[] {"홍길동", "김비자", "김보자"}; (O)
- new 연산자를 이용해서 배열 생성
int[] scores= new int[30]; 여기서 30은 길이임
타입[] 변수 = null;
변수 = new 타입[길이];
new 연산자로 배열 처음 생성할 때 배령은 자동적으로 기본값으로 초기화됨
배열 길이: 배열에 저장할 수 있는 전체 요소 수
int[] intArrary = { 10, 20, 30 };
int num = intArrary.length;
명령 라인 입력
main()메소드의 String[] args매개변수
System.exit(0); 강제종료
다차원 배열
1차원 배열이 여러개 연결
중첩 for문으로 출력
행렬구조
int[][] scores = new int[2][3];
scores[0][0] = 10;
구현방법: 1차원 배열이 다시 1차원 배열을 참조
계단식 구조
int[][] scores = new int[2][];
scores[0] = new int[2];
scores[1] = new int[3];
값 목록을 이용한 2차원 배열도 생성가능
int[][] scores = { { 1, 2 },{ 3,4 } };
int score = scores[0],[0]; 1
int score = scores[1],[1]; 4
객체를 참조하는 배열
참조(클래스, 인터페이스) 타입 배열: 요소에 값(정수, 실수, 논리값)을 저장하지 않고, 객체의 번지를 가지고 있음
배열 복사
-for문을 이용해서 요소 하나 하나를 복사
int[] oldIntArray = { 1, 2, 3 };
int[] newIntArray = new int[5];
for(int i=0; i<oldIntArray.length; i++){
newIntArray[i] = oldIntArray[i];
}
for(int i=0; i<newIntArray.length; i++){
System.println(newIntArray[i] + ", ");
}
1,
2,
3,
0,
0,
-System.arraycopy() 이용한 복사
배열은 길이가 한번 결정되면 그 길이를 늘릴수 없음
그래서 새로운 배열 만들어서 기존 배열을 저장해서 새로 만듬
향상된 for문
-배열이나 컬렉션을 좀 더 쉽게 처리
-반복 실행 위해 루프 카운터 변수나 증감식 사용하지 않음
열거 타입: 열거 상수(한정된 값)를 저장하는 타입
week today;
today = week.FRIDAY;
'TIL > myself' 카테고리의 다른 글
스타르타코딩 SQL 강의 숙제 쿼리 (0) | 2023.02.08 |
---|---|
정처기 실기 스터디 오답문제 (1) | 2022.09.13 |
TIL(Today I Learned) 20220420 자바 참조타입과 참조 변수 (0) | 2022.04.20 |
TIL(Today I Learned) 20220419 자바 조건문과 반복문 (0) | 2022.04.19 |
TIL(Today I Learned) 20220418 자바 연산자과 연산식 (0) | 2022.04.18 |