-
ArrayList vs. LinkedList vs. Vector, 제너릭 함수컴퓨터 공부/JAVA 2020. 3. 28. 15:28
ArrayList vs. LinkedList vs. Vector
List 인터페이스 상속, 동적인 배열
ArrayList : 동기화 기능 사라짐, 인덱스를 가짐 (검색 용이), <Object>
java.util.ArrayList
더보기ArrayList <String> a = new ArrayList<String>(7);
a.add("hi");
a.add("bye");
int num = a.size(); //데이터 갯수 ->2
int b = a.capacity(); //불가a.add(1, "hey"); //중간 삽입 가능
String str = a.get(1);
a.remove(1);
a.clear(); //모든 요소 삭제
* length : 배열 길이
length() : 문자열 길이
LinkedList : 서로 연결된 리스트 -> 추가 / 삭제 용이, 양방향으로 연결 (doubly linked) -> 스택/큐
java.util.LinkedList
더보기LinkedList <String> list = new LinkedList<String>();
list.add("hi");
list.add("bye");
list.add(1,"hey");
String str = list.get(1);
* head, tail
Vector : 구버전 호환용(잘 사용 안 함), 자동 동기화 (성능 떨어짐), 인덱스 사용, <Object>
java.util.Vector
더보기Vector < Integer> v = new Vector<Integer>(7);
v.add(5);
v.add(4); //넣은 순서대로 5, 4 저장
int a = v.size(); //데이터 갯수 ->2
int b = v.capacity(); //전체 용량 ->7
v.(1,-3); //인덱스 1번 자리에 중간 삽입
Interger num = v.get(1);
v.remove(1);
int last = v.lastElement(); //마지막 요소
v.removeElements(); //모든 요소 삭제
Collections 클래스
-> java.util 패키지에 포함
더보기import java.util.*;
Collections.sort(list); : 정렬
Collections.reverse(list); : 역순으로
Collections.max(list), min(list); : 최댓값, 최솟값
int index = Collections.binarySearch(list, "hi"); : 특정 값 검색 -> 해당 인덱스 반환
제네릭 함수, 배열 <T> -> T는 제너릭한 타입, 중복성 제거 (같은 클래스, 메서드 동작이 같은데 데이터 타입이 다를 때)
더보기class CustomStack<T> {
List<T> customStack = new ArrayList<>();
public void pop( T inputItem ) {
customStack.add( inputItem );
}
}
public class GenericEx_1 {
public static void main(String[] args) {
CustomStack<String> stringStack = new CustomStack();
CustomStack<Integer> integerStack = new CustomStack();
stringStack.pop( "홍길동" );
}
}
출처: https://2dubbing.tistory.com/17 [비실이의 개발공간]'컴퓨터 공부 > JAVA' 카테고리의 다른 글
HashMap<K,V> (0) 2020.03.28 Iterator -> 순차 검색 (0) 2020.03.28 Object, Wrapper class (0) 2020.03.27 인터페이스 (0) 2020.03.26 추상 메소드와 추상 클래스 (0) 2020.03.26