java (5) 썸네일형 리스트형 Base64 를 정리해본다면... Base64 도 내겐 알아두면 항상 까먹고 쓸 때 헷갈리는 것 중에 하나이다. 그제 개발할 때 Base64로 또 삽질했어서 정리해본다. 이제 그만 삽질해야지. 진짜 삽질할 것도 아닌데 신기하게 매번 그런다. Base64 인코딩 디코딩은 보통 http 통신으로 바이너리 데이터나 url을 주고받을 때 등 주로 사용된다. Base64는 RFC 4686에 따르면 Base64 인코딩은 임의의 바이트들을 대소문자 영문 등으로 이루어진 형태로 나타낼 수 있도록 고안되었다. US-ASCII에서 사용하는 65 글자가 사용되었으며 6비트당 한 글자를 표현한다. a-z, A-Z, 0-9 , +, / 로 64글자이며, 65번째 = 는 패딩용이다(= 는 아래 추가 서술). 3 바이트 = 24비트 = Base64인코딩된 4 글자.. 링크드 리스트로 브라우저 히스토리 구현하기 덱 자료구조를 활용한 경우를 찾아보면 브라우저 히스토리나 멀티 스레드 스케줄링 등이 나옵니다. 익숙하고 자주 사용해 본 브라우저 히스토리 API 의 메서드를 링크드 리스트로 구현해보았습니다. 브라우저 히스토리 브라우저 히스토리 API는 브라우저의 세션 히스토리에 접근할 있도록 합니다. 주요 메서드는 다음과 같습니다. back() : 이전 기록으로 이동 forward() : 앞선 기록으로 이동 go(int i) : i 만큼 이동, 음수이면 back, 양수이면 forward와 같음 제약 조건 브라우저 히스토리를 구현할 때 다음을 조건으로 두었습니다. 히스토리의 총 길이는 5이며, 이를 넘어갈 경우 가장 오래된 기록을 삭제합니다. back, forward, go를 모두 구현합니다. 히스토리의 정해진 길이보다 .. 링크드 리스트 링크드 리스트는 리스트 List와 덱 Deque 등을 구현한 클래스입니다. 링크드 리스트에 대해 알아보기 전에 리스트와 덱에 대해 먼저 알아보았습니다. 리스트 인터페이스 리스트 인터페이스는 순서가 있는 컬렉션으로 시퀀스 sequence 라고도 불립니다. 요소가 삽입될 위치를 조정할 수 있고, 인덱스로 요소에 접근할 수 있고, 리스트 내의 요소들을 검색할 수 있습니다. 아래 표는 각 기능을 구현한 메서드에 대한 설명입니다. 인덱스로 요소에 접근하는 메서드 구현한 클래스에 따라 요소를 인덱스로 접근하는데 인덱스의 값에 따라 실행 시간이 소요될 수 있습니다. (예: 링크드 리스트) get 메서드가 여기에 해당합니다. 리스트 내의 요소들을 검색하는 메서드 성능적인 면에서 주의해서 사용해야 하는데, 대부분의 구현.. 어레이 리스트 어레이 리스트 특징 어레이 리스트 ArrayList 클래스는 컬렉션 인터페이스 포스트에서 말한 Collection 인터페이스를 구현한 객체 중 하나입니다. 다음과 같은 특징을 가지고 있습니다. List 인터페이스를 구현한 클래스이며, 요소로는 null을 포함한 모든 타입을 가질 수 있습니다. 변경할 수 있는 메서드를 지원하고, 가변 객체이고, 가변 크기 리스트이며, 임의 접근 리스트입니다. size, isEmtpy, get, set, iterator 등은 O(1), add와 나머지 대부분의 메서드들은 O(n)의 시간 복잡도를 가집니다. 배열 용량 capacity 어레이 리스트 객체는 리스트 내부에 요소들을 저장하는데 사용하는 배열의 크기를 지칭하는 배열 용량 capacity 를 가지고 있습니다. 어레이 .. 컬렉션 인터페이스 컬렉션 프레임워크 컬렉션 collection 은 어레이 리스트 클래스, 해시 셋 클래스, 벡터 클래스와 같은 객체들을 나타내는 객체이고, 컬렉션 프레임워크 collection framework는 컬렉션들을 나타내고 조작하는 아키텍처입니다. 컬렉션 프레임워크를 적절히 활용하면 프로그래밍 비용을 줄이고, 성능을 높일 수 있습니다. 컬렉션 프레임워크는 컬렉션의 각기 다른 타입을 나타내는 컬렉션 인터페이스, 컬렉션 소팅과 같은 정적 메서드 등으로 이루어져 있으며, 그중 컬렉션 인터페이스는 컬렉션 프레임워크의 가장 기반을 이룹니다. 컬렉션 인터페이스 컬렉션 인터페이스는 java.util.Collection 과 java.util.Map 두 그룹으로 나뉩니다. 인터페이스 구현 클래스 Collection ArrayLi.. 이전 1 다음