BackEnd/Java 썸네일형 리스트형 [java] 이것이 자바다 ch15 컬렉션 2 4. Map 컬렉션 ▷ 키와 값으로 구성된 엔트리 객체를 저장 ▷ 키는 중복 저장할 수 없지만 값은 중복 저장할 수 있음. 기존에 저장된 키와 동일한 키로 값을 저장하면 새로운 값으로 대치 NO 기능 메소드 설명 1 객체 추가 V put(K key, V value) 주어진 키와 값을 추가, 저장이 되면 값을 리턴 2 객체 검색 boolean containsKey(Object key) 주어진 키가 있는지 여부 3 boolean containsValue(Object value) 주어진 값이 있는지 여부 4 Set entrySet() 키와 값의 쌍으로 구성된 모든 Map.Entry 객체를 Set에 담아서 리턴 5 V get(Object Key) 주어진 키의 값을 리턴 6 boolean isEmpty() 컬렉션.. 더보기 [java] 이것이 자바다 ch15 컬렉션 1 1. 컬렉션 프레임워크 ▷ 널리 알려진 자료구조를 바탕으로 객체들을 효율적으로 추가, 삭제, 검색할 수 있도록 관련 인터페이스와 클래스들을 포함시켜 놓은 java.util 패키지 ▷ 주요 인터페이스 : List, Set, Map 2. List 컬렉션 ▷ 객체를 인덱스로 관리하기 때문에 객체를 저장하면 인덱스가 부여되고 인덱스로 객체를 검색, 삭제할 수 있는 기능 제공 NO 기능 메소드 설명 1 객체 추가 boolean add(E e) 주어진 객체를 맨 끝에 추가 2 void add(int index, E element) 주어진 인덱스에 객체를 추가 3 set(int index, E element) 주어진 인덱스의 객체를 새로운 객체로 바꿈 4 객체 검색 boolean contains(Object o) 주.. 더보기 [java] 이것이 자바다 ch14 스레드(thread) 2 6. 스레드 동기화 ◎ 동기화 메소드와 블록 ▷ 스레드 작업이 끝날 때까지 객체에 잠금을 걸어 스레드가 사용 중인 객체를 다른 스레드가 변경할 수 없게 합니다. ◎ 동기화 메소드 및 블록 선언 ▷ 인스턴스와 정적 메소드에 synchronized 키워드를 붙입니다. ▷ 동기화 메소드를 실행 즉시 객체는 잠금이 일어나고, 메소드 실행이 끝나면 잠금이 풀립니다. ▷ 메소드 일부 영역 실행 시 객체 잠금을 걸고 싶다면 동기화 블록을 만들어줍니다. ◎ 동기화 메소드 예제 1. Calculator 클래스 public class Calculator { private int memory; public int getMemory() { return memory; } // 동기화 메소드 public synchronized .. 더보기 [java] 이것이 자바다 ch14 스레드(thread) 1. 멀티 프로세스와 멀티 스레드 ▷ 프로세스 : 운영체제는 실행 중인 프로그램을 관리 ▷ 멀티 태스킹 : 두 가지 이상의 작업을 동시에 처리하는 것 ▷ 스레드 : 코드의 실행 흐름 ▷ 멀티 스레드 : 두 개의 코드 실행 흐름. 두 가지 이상의 작업을 처리 ▷ 멀티 프로세스 : 프로그램 단위의 멀티 태스킹 / 멀티 스레드 : 프로그램 내부에서의 멀티 태스킹 2. 메인 스레드 ▷ 메인 스레드는 main() 메소드의 첫 코드부터 순차적으로 실행 ▷ main() 메소드의 마지막 코드를 실행하거나 return 문을 만나면 실행 종료 ▷ 메인 스레드는 추가 작업 스레드들을 만들어서 실행시킬 수 있음 ▷ 메인 스레드가 작업 스레드보다 먼저 종료되더라도 작업 스레드가 계속 실행 중이라면 프로세스는 종료되지 않음. 3.. 더보기 [백준 문제 2941번] 크로아티아 알파벳 문제 https://www.acmicpc.net/problem/2941 2941번: 크로아티아 알파벳 예전에는 운영체제에서 크로아티아 알파벳을 입력할 수가 없었다. 따라서, 다음과 같이 크로아티아 알파벳을 변경해서 입력했다. 크로아티아 알파벳 변경 č c= ć c- dž dz= đ d- lj lj nj nj š s= ž z= www.acmicpc.net 문제 2941) 크로아티아 알파벳 문제) 예전에는 운영체제에서 크로아티아 알파벳을 입력할 수가 없었다. 따라서, 다음과 같이 크로아티아 알파벳을 변경해서 입력했다. 예를 들어, ljes=njak은 크로아티아 알파벳 6개(lj, e, š, nj, a, k)로 이루어져 있다. 단어가 주어졌을 때, 몇 개의 크로아티아 알파벳으로 이루어져 있는지 출력한다. dž는 무.. 더보기 [백준 문제 1152번] 단어의 개수 문제 https://www.acmicpc.net/problem/1152 1152번: 단어의 개수 첫 줄에 영어 대소문자와 공백으로 이루어진 문자열이 주어진다. 이 문자열의 길이는 1,000,000을 넘지 않는다. 단어는 공백 한 개로 구분되며, 공백이 연속해서 나오는 경우는 없다. 또한 문자열 www.acmicpc.net 문제 1152) 단어의 개수 문제) 영어 대소문자와 공백으로 이루어진 문자열이 주어진다. 이 문자열에는 몇 개의 단어가 있을까? 이를 구하는 프로그램을 작성하시오. 단, 한 단어가 여러 번 등장하면 등장한 횟수만큼 모두 세어야 한다. 입력) 첫 줄에 영어 대소문자와 공백으로 이루어진 문자열이 주어진다. 이 문자열의 길이는 1,000,000을 넘지 않는다. 단어는 공백 한 개로 구분되며, 공백.. 더보기 [java] 스레드(Thread) 1. 스레드란? ▷ 메모리를 할당받은 프로세스에서 실질적인 작업을 수행하는 것입니다. ▷ 하나의 프로세스 안에서 두 가지 이상의 일을 하도록 도와줍니다. 프로그램을 실행시키면 메모리가 할당되어 실행됩니다. 이때, 실행 중인 프로그램은 프로세스! 프로세스에서 작업을 수행하는 것이 스레드이며 두 가지 이상의 작업을 하려면 두 개 이상의 스레드가 필요 ◎ 프로세스가 실행되는 방식 1. 시간분할 방식 ▷ 시간분할 방식은 모든 프로세스에게 동일한 시간을 할당하고 골고루 실행합니다. 2. 선점형 방식 ▷ 선점형 방식은 각각의 프로세스에게 우선순위를 부여하고 우선순위가 높은 순으로 실행되는 방식입니다. 우선순위가 높은 프로세스가 잠시 멈추면 그다음 순위의 프로세스가 동작합니다. ◎ 스레드 생성 방법 1. Thread.. 더보기 [java] 이것이 자바다 ch13 제네릭(Generic) 1. 제네릭 ▷ 결정되지 않은 타입을 파라미터로 처리하고 실제 사용할 때 파라미터를 구체적인 타입으로 대체시키는 기능 ▷ 는 T가 타입 파라미터임을 뜻하는 기호. 타입이 필요한 자리에 T를 사용할 수 있음을 알려줍니다. 1. Box에 넣을 내용물로 content 필드를 선언 public class Box{ public ? content; } 2. 클래스 타입 선언 대신 Object 타입 선언 public class Box{ public Object content; } 3. Object는 최상위 부모 클래스이므로 자동 타입 변환되어서 어떤 객체든 대입 가능합니다. Box box = new Box(); box.content = 모든 객체; 4. 강제 타입 변환 String content = (String) .. 더보기 이전 1 ··· 5 6 7 8 9 10 11 ··· 17 다음