Java의 정석/컬렉션 프레임워크16 LinkedList 와 ArrayList 의 비교 ch11- 12 LinkedList - 배열의 장단점 장점 : 배열은 구조가 간단하고 데이터를 읽는 데 걸리는 시간이 짧다. (접근 시간, access time 이 짧다) 첫번째 요소를 읽는것과 마지막 요소를 읽는 시간이 동일 하다. 만약, int 타입의 배열 [ ] 이라고 가정 하면, 요소 하나당 4byte를 차지하므로, 1은 0x100 2는 0x104 3은 0x108 4는 0x112 5는 0x116 일것이다. 3번째 요소를 가지고 오려면, 0x100 번지 주소에서 배열 요소의 크기 (int 타입 이니까 4byte) 에 index 를 곱하면 n번째 요소의 주소를 쉽게 구할 수 있다. 만약에 n번째 요소가 100번째 라고 했어도, 0x100 번지 + (4byte * 100) 을 하면 바로 해당 요소의 주.. 2023. 9. 17. ArrayList와 Java API 확인 ch11 - 7 ArrayList List 인터페이스는 순서를 유지 하고, 중복을 허용 한다. List 인터페이스를 구현 받은 클래스들이 존재 한다. Vector은 오래된 클래스라서 저것과 유사한 클래스가 ArrayList 이다. 굳이 차이점을 뽑자면, Vector 클래스는 자체적으로 동기화를 지원하고, ArrayList는 자체적으로 동기화를 지원 하지 않는다. List 인터페이스를 구현 받은 클래스들은 모두, 데이터의 저장 공간으로 배열을 사용 한다. ch11 - 8 ArrayList의 메서드 위의 메서드는 ArrayList의 생성자 이다. 첫번째는 기본생성자 이고, 두번째는 매개변수로 어떤 컬렉션을 주면, 그 컬렉션 안에 저장 되어 있는 데이터를 ArrayList에 저장 할 수 있다. 세번째는 배열의.. 2023. 9. 17. Collection, List, Set, Map ch11 - 3 Collection 인터페이스의 메서드 List 와 Set 인터페이스 에서 공통 부분을 뽑아낸 인터페이스가 있다. >> Collection 인터페이스. 기본적으로 데이터의 추가, 검색, 삭제 등의 메서드를 가진다. ch11 - 4 List 인터페이스 - 순서 O, 중복 O List 인터페이스를 구현받은 핵심 클래스는 2가지 이다. ArrayList 와 LinkedList 이다. Vector과 Stack은 컬렉션 프레임워크가 표준화 되기 이전의 오래된 클래스들 이다. (Vector 클래스는 ArrayList 클래스와 거의 유사 하다) 마찬가지로 객체 (데이터) 를 추가, 검색, 삭제 하는 메서드가 있다. 당연히, ArrayList 클래스는 List 인터페이스를 구현한 클래스 이고, List.. 2023. 9. 17. 컬렉션 프레임워크와 핵심 인터페이스 ch11 - 1 컬렉션 프레임워크 (collections framework) > 컬렉션 (collection) - 여러 객체 (데이터) 를 모아 놓은 것을 의미. > 프레임워크 (framework) - 표준화, 정형화된 체계적인 프로그래밍 방식. 프레임워크는 라이브러리 + 프로그래밍 방식을 강제 한다. 즉, 기능뿐만 아니라, 프로그래밍의 방식까지 제안 한다. 자유도가 떨어진다고 볼 수도 있지만, 중요한점은, 정해진대로만 하면 되니까, 프로그래밍의 생산성이 증가 하고, 유지보수가 용이해 진다. > 컬렉션 프레임워크 (collections framework) - 컬렉션 (다수의 객체) 을 다루기 위한 표준화된 프로그래밍 방식. 객체를 저장, 삭제, 검색, 정렬, .. 하는것을 "객체를 다룬다" 라고 한다. .. 2023. 9. 17. Map (링크드 해시맵) 예제 02 package practice; import java.util.ArrayList; import java.util.LinkedHashMap; import java.util.List; import java.util.Map; import java.util.Scanner; public class Hashmap { public static void main(String[] args) { Scanner sc = new Scanner(System.in); while(true) { System.out.print("텍스트 입력 >> "); String text = sc.nextLine(); if(text.equals("종료") || text.equals("end") || text.equals("END")) { Syste.. 2023. 8. 26. Map (해시맵) 예제 01 --------------------------------------------------------------------------------------- 2023. 7. 30. HashMap (해시맵) 23.07.29 HashMap 1. HashMap과 Hashtable 1) Set (집합) 과 같이, 순서가 없다. (순서를 유지 하고 싶으면 ? >> LinkedHashMap 클래스를 사용 하면 된다) 2) 키, 값 한쌍의 형태로 저장 된다. 키는 중복 허용 불가능. 값은 중복 허용 가능. 3) Map 인터페이스를 구현한 대표적인 컬렉션 클래스 이다. 4) HashMap (동기화 X) 은 Hashtable (동기화 O) 의 신버전의 개념 이다. (동기화 개념은 쓰레드 개념이라, 나중에 다시 정리 하기) 5) TreeMap => TreeSet 과 거의 유사 하다. 범위 검색과 정렬에 유리한 컬렉션 클래스 이다. HashMap 보다 데이터 추가, 삭제에 시간이 오래 걸리는게 특징 이다. (비교해 가면서 저.. 2023. 7. 30. 이전 1 2 다음