반응형

리스트

    Java List 인터페이스 중 CopyOnWriteArrayList 소개

    자바에는 크게 4개의 List 인터페이스를 구현한 클래스가 있다. - Vector, ArrayList, LinkedList, CopyOnWriteArrayList 그 중 가장 생소한 이름이 있는데 CopyOnWriteArrayList이다. CopyOnWriteArrayList는 그냥 ArrayList랑 다르길래 화려한 이름을 가지고 있는걸까? ArrayList vs CopyOnWriteArrayList 일반 ArrayList의 경우 스레드에 안전하게 설게되어 있지 않기때문에 만약 스레드 처리가 필요한 List의 경우에 Vector를 사용하거나 ArrayList에 synchroized를 사용하여 처리하였다. 하지만 자바 1.5부터 있던 CopyOnWriteArrayList를 쉽게 이문제를 해결할 수 있다...

    제네릭 - 규칙 25 배열 대신 리스트를 써라

    배열과 제네릭 자료형(List)의 차이 배열은 convariant 제네릭 자료형은 invariant 자료형이다. 차이 1. covariant - Sub[] 이 Super 의 하위자료형이라면 Sub[] 은 Super[]의 서브 타입이다. invariant Type1 Type2 List List 의 서브타입도 슈퍼타입도 아니다. 그렇기 때문에 List은 List의 서브타입 또는 슈퍼타입도 될 수 없다. 이런 이유로 제네릭 쪽이 배열보다 취약한 것 같지만 다음과 같은 문제를 보면 오히려 문제가 발생하는 부분은 배열이다. 12345678// 실행 중에 문제를 일으킴 (배열)Object[] objectArray = new Long[1];objectArray[0] = "babo ya";=> 컴파일시 문제는 없지만 ..

    더블링크드 리스트 구현하기

    123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138package java8; public class Node { public Node next; public Node prev; private String value;..

반응형