목록알고리즘 & 자료구조 & 네트워크 (29)
오봉이와 함께하는 개발 블로그
Algorithmday_3 정리 (2021.11.30 화요일) Tree 트리 자료들의 항목이 가지들로 연결될 수 있게 자료가 구성되어 있는 구조 node(자료(항목))와 edge(간선(가지))로 구성. 계층적인 구조 부모-자식 관계의 노드들로 구성 트리의 용어 노드(node) : 트리를 구성하는 각 자료 항목 근 노드(root node) 트리 구조를 시작하는 노드 최상위에 존재하는 하나의 노드 자식 노드 임의의 노드에 연결된 다음 레벨의 노드들의 집합 D의 자식 노드는 H, I, J 부모 노드 임의의 노드에 연결된 상위 계층의 노드 B는 E, F의 부모 차수(degree) 한 노드에 연결된 가지의 수 (노드가 갖고 있는 자식 노드의 개수) D의 차수는 3 레벨(level) root node부터 0으로 시..
Algorithmday_3 정리 (2021.11.30 화요일) Map Map 인터페이스 키(Key)와 값(Value)의 쌍으로 이루어진 데이터의 집합 키와 값은 모두 객체 키는 중복될 수 없지만 값은 중복 가능 기존에 저장된 데이터와 중복된 키 값을 저장하면 기존의 값은 없어지고 마지막에 저장된 값이 남음(값을 덮어쓴다) 구현 클래스 : HashMap, HashTable, LinkedHashMap, Properties, TreeMap 일반적으로 Key의 타입은 String 많이 사용한다. HashMap을 생성 하려면 Key와 Value 모두 매개변수 작성을 해야 한다. Map map = new HashMap(); HashMap 예제 HashMapEx1.java public class HashMapEx1 ..
Algorithmday_3 정리 (2021.11.30 화요일) Set Set컬렉션 Set인터페이스 수학의 집합에 비유 저장 순서가 유지되지 않음 객체 중복 저장 불가 구현 클래스 : HashSet, LinkedHashSet, TreeSet 전체 객체를 대상으로 한 번씩 반복해 가져오는 반복자(Iterator) 제공 인덱스로 객체를 검색해서 가져오는 메소드 없음 get() 메소드 없음 Iterator java.util 패키지의 Iterator 인터페이스 컬렉션 프레임워크에서 컬렉션에 저장된 요소들을 읽어 오는 방법을 표준화한 것 요소가 순서대로 저장된 컬렉션에서 요소를 순차적으로 검색할 때 사용 Vector v = new Vector(); Iterator it = v.iterator(); 벡터 v의 요소를..
Algorithmday_3 정리 (2021.11.30 화요일) Vector ArrayList와 동일한 내부 구조 스레드 동기화(Synchronization)되어 있기 때문에 여러 스레드가 동시에 접근하여 추가, 삭제 하더라도 스레드에 안전. Vector 실습 예제 VectorEx.java public class VectorEx { public static void main(String[] args) { List list = new Vector(); list.add(new Board("제목1","내용1","글쓴이1")); list.add(new Board("제목2","내용2","글쓴이2")); list.add(new Board("제목3","내용3","글쓴이3")); list.add(new Board("제목..
Algorithmday_3 정리 (2021.11.30 화요일) LinkedList List 구현 클래스이므로 ArrayList와 사용 방법은 동일 내부 구조 다름 ArrayList : 배열로 만들어져 있어서 인덱스 사용 LinkedList : 인접 참조를 링크해서 체인처럼 관리 (이전/다음 객체의 주소 갖고 있음) 특정 인덱스에서 객체를 제거하거나 추가하게 되면 바로 앞뒤 링크만 변경 빈번한 객체 삭제와 삽입이 일어나는 곳에서는 ArrayList보다 성능 좋음 순차적으로 추가/삭제 시 ArrayList가 LinkedList 보다 빠름 ArrayList가 용량이 충분하면 더 빠르지만 충분하지 않으면 새로운 크기의 ArrayList를 생성하고 데이터를 복사는 일이 발생해서 순차적으로 데이터를 추가해도 Arr..