배열
배열 선언: 실제는 배열 변수의 선언이다.
- 클래스 선언처럼 앞에 데이터 타입을 쓰고 new로 할당을 해준다.
- c++과 다르다!!
int[] scores = new int [5]; int scores[] = new int [5]; int size = scores.length; //배열의 사이즈를 나타냄
- 사용법은 똑같음
다차원 배열
- 기본적으로 사용 개념은 똑같다.
- 관례
- int[][] scores = new int[3][5];
- 3행 * 5열: 앞에가 행 뒤에가 열
int[] scores = {{100, 90, 50, 95, 85}, {70, 60, 82, 75, 40}, {90, 80, 70, 60, 50}}; for (int i = 0; i< scores.length; i++){ for(int j = 0; j<score[i].length;j++) scores[i][j]; }
동적 배열
유동적인 배열을 지원하기 위해 ArrayList 클래스를 제공
ArrayLIst<참조타입> 참조변수 = ArrayList<>(); 참조변수.add(데이터) 참조변수.remove(인덱스 번호) 참조변수.get(인덱스 번호) 참조변수..size()
참조타입은 클래스도 들어갈 수 있으나 기초타입(ex. int, char)일 경우 해당하는 class를 사용한다.
- Integer, Long, Short etc..
- 위와 같은 클래스는 NULL값을 가질 수 있다.
배열을 위한 반복문
for(데이터타입 변수 : 배열 혹은 컬렉션 ){}
- 배열 또는 컬렉션 내용을 변수로 가져온다.
- 더 이상 가져올 항목이 없으면 반복문을 종료한다.
메서드에서 배열을 전달
int[] num = new int[5];
function(num);
public static void function(int[] a){
a[0] = 1;
}
c++에서는 call by reference 로 받았지만
java에서는 배열 그대로 받는다.
public static void main(String[] args)에서 String[] args의 의미
자바 프로그램을 실행할 때 Test.java를 그대로 실행할 수 있지만
Test.java -d 처럼 옵션을 넣을 수 있다.
이 옵션 또한 매개변수이므로 String[] 배열로 받아서 사용이 가능하다.
컬렉션 프레임워크
프레임워크: 라이브러리 집합이다.(프로그램 실행 흐름이 존재)
라이브러리: 코드 파일
컬렉션: 데이터를 한 곳에 모아 편리하게 저장 및 관리하는 가변 크기의 객체 컨테이너
- Stack, Queue, LinkedLIst, ArrayList 등이 있다.
컬렉션 프레임워크: 객체를 한 곳에 모아 효율적으로 관리하고 편리하게 사용할 수 있도록 제공하는 환경
- 인터페이스와 클래스로 구성되어있다.
- 인터페이스
- 컬렉션에서 수행할 수 있는 각종 연산을 제네릭 타입으로 정의해 유사한 틀래스에 일관성 있게 접근
- 클래스
- 컬렉션 프레임워크 인터페이스를 구현한 클래스
java.util 패키지에 포함되어 있다.
인터페이스
- List
- ArrayList, LinkedList
- Queue
- PriorityQueue, DelayQueue
- Set: 객체의 순서가 없으며, 동일 원소를 중복 불가
- HashSet
- Map: 키와 값을 쌍으로 저장, 키는 중복 불가
- HashMap
List
나머지는 다 자구에서 한거니까 pass
Stack클래스는 여기에 있어
- HashMap
- List
ArrayList
- 초기 용량이 존재
- Iterator: 순방향
LinkedList
- 이중 연결 리스트
- Iterator: 순방향, 역방향
Queue
Queue라는 인터페이스에서 String 타입으로 LinkedList 메소드를 사용할거야Queue<String> q = new LinkedLIst<>();
기존에 알던 enqueue dequeue가 아닌
(offer add) remove를 사용
Set
객체 순서 없이, 원소 중복 없이 저장
Set<String> h1 = HashSet<>();
Set이라는 인터페이스에서 String 타입으로 HashSet 메소드를 사용할거야
Map
Key와 Value를 쌍으로 저장
Map<String, Integer> m = new HashMap<>();
Map이라는 인터페이스에서
String타입의 Key
와Integer타입의 Value
으로 HashMap 메소드를 사용할거야
'Java > 이론 정리' 카테고리의 다른 글
예외처리와 제네릭 (0) | 2021.01.19 |
---|---|
객체 지향 (0) | 2021.01.19 |
Java 기본 문법 (0) | 2021.01.19 |
최근댓글