Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
Tags
- 스프링 입문
- 단축키정리
- 김영한 #SOLID #객체지향
- 웹 크롤링
- 공부내용정리
- COMMIT
- 데이터 수집
- 스프링부트
- 클래스 #아이디
- 작업 영역
- fastapi
- 생성자 #자바 #기록남기기
- 에러포스팅
- 그룹핑
- Numpy #TIL #넘파이 기초
- SQL
- MVC #디자인패턴
- 파이썬
- C언어 #문자열변환 #정수형변환
- SafeUpdate
- 커밋
- 머신러닝 #회귀 #규제
- 머신러닝 #학습내용정리
- 개발공부
- GIT
- 개발자가 되기 위해 꼭 알아야 하는 IT용어
- 기술블로그
- 크롬브라우저
- 컬럼수정
- 옵셔널태그
Archives
- Today
- Total
데이터 분석가 몽구리
제네릭과 컬렉션 본문
컬렉션의 개념
컬렉션(collection)은 배열이 가진 고정 크기의 단점을 극복하기 위해 객체들을 쉽게 삽입, 삭제, 검색할 수 있는 가변 크기의 컨테이너이다.
컬렉션 클래스는 개발자가 바로 사용할 수 있는 것들로서, Vector<E>와 ArrayList<E>는 가변 크기의 배열을 구현합니다.
제네릭의 기본 개념
제네릭(generic)은 모는 종류의 타입을 다룰 수 있도록, 클래스나 메소드를 타입 매개변수를 이용하여 선언하는 기법
제네릭 컬렉션 활용
Vector<E>
- vector<E>는 배열을 가변 크기롤 다룰 수 있게 하고, 객체의 삽입, 삭제, 이동이 쉽도록 구성한 컬렉션 클래스이다.
정수만 다루는 벡터를 생성하고 , 활용하는 기본 사례
import java.util.Vector;
public class VectorEx {
public static void main(String[] args) {
Vector<Integer> v = new Vector<Integer>(); // 정수 값만 다루는 벡터 생성
v.add(5);
v.add(4);
v.add(-1);
// 벡터 중간에 삽입하기
v.add(2, 100);
System.out.println("벡터 내의 요소 개수 : " + v.size());
System.out.println("벡터의 현재용량: " + v.capacity());
// 모든 요소 출력하기
for(int i=0;i<v.size();i++){
System.out.println(v.get(i));
}
// 벡터 속의 모든 정수 더하기
int sum = 0;
for(int i=0;i<v.size();i++){
int n=v.elementAt(i);
sum += n;
}
System.out.println("벡터에 있는 정수 합: " + sum);
}
}
-- 실행결과--
벡터 내의 요소 개수 : 4
벡터의 현재용량: 10
5
4
100
-1
벡터에 있는 정수 합: 108
ArrayList<E>
ArrayList는 스레드 간에 동기화를 지원하지 않기 때문에, 다수의 스레드가 동시에 ArrayList에 요소를 삽입하거나 삭제할 때 ArrayList의 데이터가 훼손될 우려가 있다. 하지만 멀티스레드 동기화를 위한 시간 소모가 없기 때문에, ArrayList는 Vector보다 속도가 빨라, 단일 스레드 응용에는 더 효과적이다.
ArrayList의 생성
ArrayList<String> a = new ArrayList<String>();
// Java 10부터 가능
var a = new ArrayList<String>();