전체보기66 HashMap<K, V> Map 인터페이스를 구현한 클래스 저장공간 동적관리 == 필요시 자동으로 저장공간 확대 어디에 사용하나? 우리가 서점에서 책을 판다고 생각해보자. 우리는 매주 새 책들을 들이고 관리를 해야한다. 이 경우 우리는 컴퓨터가 아니므로 모두 기억할 수 없다. 하지만 책 제목(key)과 가격(value)을 HashMap에 넣으면 문제가 해결이 된다. 팔요한 정보는 get()과 put()을 통해 넣거나 호출할 수 있다. 책 정보 넣기 책 가격 알아내기 책 가격이 바뀌었을 때 replace(key, oldValue, newValue); 책 목록 뽑기 HashMap을 keySet() 메서드를 사용해 Set으로 변환한 다음 for-each문을 사용해 출력한다. ## 람다식 제목, 가격 전체 출력 2022. 5. 11. Generic 타입 범위 제한 제네릭 타입에는 Object 메서드만 사용이 가능해서 기능이 매우 한정적이다. ==> 상속 적용 종류 제네릭 클래스 타입 제한 문법구조 제네릭 메서드타입 제한 클래스, 인터페이스 상관없이 에서 T 다음으로 extends 클래스명/인터페이스명을 넣어준다. 예: public void met(T t){} 혹은 interface MethodInterface{public abstract void drive(); } public ...... 메서드 매개변수로서의 제네릭 클래스 타입 제한 A 2022. 5. 10. Generic 메서드 정의 리턴 타입/매게 변수 타입을 제네릭 타입으로 지정 예) public T genericMethod(T t){ return t; } public void genericMethod2(K k, V v){ //코드 } 호출 참조객체.메서드이름(매개변수) 예) A a = new A(); int a = a.genericMethod(40); 제한 제네릭 메서드 내부에서는 Object 클래스 메서드만 사용이 가능하다. 즉, 나중에 실제 매개변수 타입이 Integer 나 String이라 하여도 Integer.parseInt() 나 length()는 입력할 수 없다. 예) class GenericMethod{ publicvoid b(T t){ System.out.println(t.length()); // 오류발생 } .. 2022. 5. 10. Thread - 동기화 필요성 작업이 하나씩 하나씩 순차적으로 실행되어야 할 때 == 완료이후에야 다른 작업이 시작될 수 있다. 메서드 동기화 접근지정자 다음에 synchronize를 추가해 준다 이 경우 두개의 쓰레드를 실행시켜도 첫 쓰레드가 완전히 끝나야 다음 쓰레드가 아래의 메소드를 실행한다 블록 동기화 메서드 전체를 동기화 할 필요없을 때 사용 key(임의의 객체)가 다르면 동시 실행 가능 키 생성 방법: 객체를 만들고 그 이름을 따서 key위치에 넣어주면 된다. 2022. 5. 9. 이전 1 ··· 8 9 10 11 12 13 14 ··· 17 다음 반응형