728x90

list 5

Java(자바) - 컬렉션 프레임워크

List 순서를 유지하고 저장 중복 저장 가능 객체를 인덱스로 관리 객체의 주소를 저장 ArrayList 제한 없이 객체 추가 가능 배열과 동일한 방식(삭제 혹은 삽입시 앞 혹은 뒤 객체들을 이동 시켜 인덱스 구성 맞춤) Collections.synchronizedList()메소드로 동기화 매핑 가능 Vector synchronized 메소드로 구성되어져 있어 멀티 스레드가 동시에 실행 불가 멀티 스레드 환경에서 안전하게 객체 추가 및 삭제 가능 LinkedList 인접 객체를 체인처럼 연결해서 관리 앞 뒤 링크만 변경하면 되므로 빈번한 삽입, 삭제 작업에 성능이 좋음 Set 순서를 유지하지 않고 저장 중복 저장 안됨 하나의 null만 저장 가능 HashSet hashCode()의 리턴값이 같고, equ..

BackEnd 학습/Java 2024.01.29

List(리스트)

List 순서를 가지고 데이터를 저장하는 자료구조 Arrary List, Linked List가 존재 Array List 연속된 메모리에 저장하는 구조 LinkedList 주소값을 가지고 비연속된 메모리에 저장하는 구조로 주소값을 통해 다음 값을 알 수 있음 Array List 특징 고정된 저장 공간 순차적인 데이터 static array(정적 배열) 선언 시에 size를 정하여 해당 size만큼의 연속된 메모리를 할당 받아 data를 연속적/순차적으로 저장하는 자료구조(static array)⇒ dynamic array 사용 ⇒ 매번 고정되어진 크기 때문에 해당 크기보다 크게 저장이 불가능함 random access 배열 변수는 자신의 첫번째 주소값을 가리킴 첫번째 주소값만 알고 있으면 어떤 주소든 접..

Two Pointer (투포인터)

정렬이 되어진 상황에 Two pointer 사용 리스트에서 두가지 원소를 가지고 특정한 값을 도출해야할 때 사용 아래의 문제는 nums가 주어졌을 때 두 원소를 더해서 target이 되면 True 아니면 False를 return 하는 전형적인 Tow Pointer 문제 import java.util.*; class Solution { public int[] twoSum(int[] nums, int target) { int[] answer = new int[2]; int[][] tmp = new int[nums.length][2]; int l = 0; int r = nums.length - 1; for(int i = 0; i < nums.length; i++){ tmp[i][0] = nums[i]; tmp..

자바 성능 튜닝 - 컬렉션

Collection의 종류 Set : 중복을 허용하지 않는 집합을 처리하기 위한 인터페이스 List : 순서가 있는 집합을 처리하기 위한 인터페이스이며 인덱스가 있어 위치를 통해 값을 찾을 수 있음, 중복 허용 Queue : 여러 객체를 처리하기 전에 담아서 사용하기 위한 인터페이스이며 FIFO를 따름 Map : Key-Value 로 구성된 객체의 집합을 처리하기 위한 인터페이스이며 중복된 Key를 허용하지 않음 Set - 중복이 없는 집합 객체를 만들때 유용합니다. - HashSet : 해쉬 테이블에 담는 클래스로 순서없이 저장 - TreeSet : 이진 트리 구조로 데이터를 담으며 값에 따라 순서가 정해짐, 데이터를 담으면서 동시에 정렬하여 HashSet보다 성능상 느림 - LinkedHashSet ..

컬렉션과 컬렉션 스트림

컬렉션 - 다수의 객체들을 저장한 집합 구조체 입니다. - List: 저장하는 순서가 존재하며 Index를 사용해 구분합니다. ArrayList,Linked List 등이 있으며 모든 객체들이 개념적으로 순차되어져 있지만 Linked List의 경우 실질적으로 주소를 사용해 랜덤적으로 저장되어져 있습니다. - Set : 요소들이 순서와 Index를 가지지 않고 객체 자신의 값을 키 값으로 사용하기 때문에 중복된 값을 넣을 수 없습니다. 요소 전체에 대해 어떤 행위를 수행하고자 할 때 외부반복자를 사용합니다. - Map : 키값을 별도로 사용하여 저장하며 키와 Value 쌍으로 이루어진 엔트리를 집합 자료로 사용합니다. 그 중 Properties의 경우 키와 Value의 값을 모두 String으로 사용하며..