전체 글194 제네릭 ( Generic ) 제네릭 ㅡ 메서드나 컬렉션 클래스의 타입을 체크 ㅡ 컴파일 시 체크해주기 때문에 타입 안정성 ↑, 형변환 번거로움 ↓ List strList = new ArrayList(); List : 원시 타입 String : 타입 변수 List : 제네릭 클래스 List strList = new ArrayList(); strList.add("기본 문자열"); String str = strList.get(0); // SOLID 원칙에 어긋난다. 최상위 클래스 object(부모)가 String(자식)이 된다는 꼴 // 강제 형 변환하면 사용은 가능함 → (String)strList.get(0); // 제네릭을 사용하지 않으면 매 번 형변환 작업을 해줘야 함 List strList2 = new ArrayList(); s.. 2023. 1. 13. [프로그래머스 / 명예의 전당 (1) / JAVA] https://school.programmers.co.kr/learn/courses/30/lessons/138477 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문제 접근 배열보단 값 저장, 변경에 ArrayList가 나을 거 같아서 사용 ㅡ score.length 길이 만큼 돌아가는 반복문 ㅡ 명예의 전당이 꽉 차기 전까진(명전 사이즈 < k) 점수를 바로 명전에다가 저장 ★★ Collections.sort() → List 오름차순 정렬 해주는 메서드 ㅡ 오름차순 정렬되면 0번 인덱스가 제일 작은 값 → answer에 저장 ㅡ 명전이 꽉 차면 ( el.. 2023. 1. 13. 스레드 ( Thread ) Thread ㅡ 프로세스에서 작업 수행 / 모든 프로세스에는 한 개 이상의 스레드가 존재 멀티 스레드 프로세스(multi-threaded process) : 두 개 이상의 스레드로 작업을 수행하는 프로세스 *프로세스 → 실행 중인 프로그램 / 프로그램이 운영체제에 의해 메모리 공간을 할당받아 실행 중인 상태 / 프로세스는 데이터, 메모리 등의 자원과 스레드로 구성 시간분할 방식 : 모든 프로세스에게 동일한 시간 할당 선점 방식 : 프로세스에게 우선 순위 부여 후 높은 순으로 진행 스레드 생성 ㅡ Thread 클래스 상속 ㅡ Runnable 인터페이스 구현 Thread 클래스 상속 / Runnable 인터페이스 구현 class Thread1 extends Thread { public void run() {.. 2023. 1. 13. ArrayList ArrayList ㅡ 배열에서 발전된 List ㅡ 0번 인덱스(위치)부터 요소(값) 저장 ArrayList 선언 ArrayList num = new ArrayList(); 데이터 추가 num.add(1); num.add(2); num.add(4); num.add(8); num.add(16); System.out.println(num); 0번 인덱스부터 추가한 순서대로 저장된다. num.add(1); num.add(2); num.add(4); num.add(8); num.add(16); num.add(3, 6); add(3, 6)으로 값을 추가하면 기존 3번 인덱스에 6이 저장되고 원래 있던 값 8은 인덱스 4로 밀려난다. 데이터 변경 num.add(1); num.add(2); num.add(4); num.. 2023. 1. 12. 컬렉션 프레임워크 ( Collection Framework ) / 제네릭 ( Generic ) Collection Framework ㅡ 데이터를 쉽고, 효율적으로 다루기 위한 클래스들의 집합 ㅡ 데이터를 저장하는 자료구조나 데이터를 처리하는 알고리즘 등 클래스를 구현 ㅡ Collection Framework는 인터페이스를 사용하여 구현 * Iterator : Collection 요소에 접근해 반복적인 작업에 도움을 주는 객체 Iterator 메서드 → hasNext() : 다음 요소가 있는지 확인 next() : 다음 요소 반환 Iterator it = num.iterator(); Generic ㅡ 클래스가 다룰 객체를 미리 명시 / 데이터 타입을 일반화(Generalize) ㅡ 클래스나 메서드에서 사용할 내부 데이터 타입을 미리 지정 List num = new ArrayList(); 를 타입 변.. 2023. 1. 12. [프로그래머스 / 문자열 나누기 / JAVA ] https://school.programmers.co.kr/learn/courses/30/lessons/140108#qna 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문제 접근 문제를 잘못 해석해서 처음에 풀이가 완전 다른 쪽으로 나아갔다. 핵심은 첫 문자 x와 x가 아닌 문자들의 횟수를 세야한다는 거다. [ 분해된 문자열에서도 다시 그 첫 문자를 기준으로 x와 x가 아닌 문자들로 나뉜다. ] 첫 문자 x는 시작부터 횟수가 1올라가니 xCount에 1을 넣고 시작했다. 문자열의 첫 문자도 firstWord 변수에 대입하고 for문이 0부터 시작하지 않.. 2023. 1. 12. 이전 1 ··· 25 26 27 28 29 30 31 ··· 33 다음