Collections 인터페이스 함수 -- Set과 ArrayList의 부모 인터페이스로 Collections의 함수는 Set과 List에서 사용한다.

*.add()  // 값 추가

*.clear() // 초기화

*.isEmpty() // 비어있는지 확인

*.size() // 사이즈

*.toArray() // 배열로 변환

 

ArrayList  -- 순서가 있으며, 중복 값을 허용한다.

ArrayList<Integer> listA = new ArrayList<>(); // int 형 리스트를 선언한다.

listA.add(1) : 1을 리스트에 추가한다.

listA.remove(1) : 1을 리스트에서 제거한다.

listA.get(i) : 리스트의 인덱스 i번째에 저장 된 값을 가져온다.

listA.retainAll(listB) : listA와 ,listB에서 서로 동일한 값을 가지고 있는 경우 listA에 저장하고, 동일 하지 않은 값은 제거된다.(A,B교집합)

listA.contains(1) : 1이 있는지 확인하여 있으면 true, 없으면 false를 반환한다.

listA.indexOf(1) : 1이 저장되어 있는 인덱스 번호를 리턴한다.(두번째에 저장되어 있으면 1, 세번째 저장되어 있으면 2 반환)

listA.sort() :  Java 8 이상 사용 가능한 라이브러리로 선언한 리스트를 오름차순 정렬한다.

listA.sort(Comparator.naturalOrder()) : 위와 같이 리스트를 오름차순 정렬한다.

listA.sort(Comparator.reverseOrder()) : 리스트를 내림차순 정렬한다.

Collections.sort(listA) : 리스트를 오름차순 정렬한다.

Collections.sort(listA , Collections.naturalOrder()) : 위와 같이 리스트를 오름차순 정렬한다.

Collections.sort(listA , Collections.reverseOrder()) : 리스트를 내림차순 정렬한다.

 

TreeSet - 순서가 있으며, 중복 값을 허용하지 않는다.
set.add(val) : 중복되지 않는 val 값을 set에 저장한다.
Treeset<Integer> tree = new TreeSet<>(Collections.reverseOrder()) : 값을 저장시 내림차순 정렬한다. 기본적으로는 오름차순으로 저장한다.
set.first() : set에 저장된 첫번째 값을 가져온다.
set.last() : set에 저장된 마지막 값을 가져온다.
set.size() : set의 사이즈를 반환한다.
for( int x : set) {} : for문을 사용하여 set 값을 가져온다.

 

Set   --  순서가 없으며, 중복 값을 허용하지 않는다.

Set<String> set = new HashSet<>(); // string 형 해시셋 객체를 생성한다.

set.add("a") : 문자열 "a"를 set에 추가한다.

set.remove("a") : 문자열 "a"를 set에서 제거한다.

 

 

 

 

 

 

'JAVA 라이브러리' 카테고리의 다른 글

스택 + 큐 함수 정리  (0) 2022.06.26
HashMap 함수 정리  (0) 2022.06.19
문자 함수 정리(String, Integer, Character)  (0) 2022.06.19

문제 풀이 (JAVA)

import java.io.*;
import java.util.*;
public class part4_1 {

	public static void main(String[] args) throws IOException {
		// 학급 회장(해쉬)
		BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
		BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));

		int N = Integer.parseInt(br.readLine());
		char [] ch = new char[N];
		String str = br.readLine();
		ch = str.toCharArray();
		char answer = solution(ch);
		
		bw.write(answer);
		bw.flush();
		bw.close();
	}
	private static char solution(char [] charr) {
		char result =' ';
		int max=0;
		HashMap<Character,Integer> map = new HashMap<>();
		for(int i=0; i< charr.length; i++) {
			// or if문 (map.containsKey(charr[i]))
			map.put(charr[i], map.getOrDefault(charr[i],0)+1);
		}
		for(Character key : map.keySet()) {
			if(max < map.get(key)) {
				max = map.get(key);
				result = key;
			}
		}
		return result;
	}
}

해시 함수 정리

map.put(key,value) : map에 해당되는 key에 value를 INSERT or UPDATE 한다.

map.get(key) : key에 해당하는 value를 리턴한다.

map.containsKey(key) : map에 key가 존재하는지 확인하여 존재하면 true, 존재하지 않을 경우 false를 리턴한다.

map.getOrDefault(key,0) : map에 key가 존재하면 key의 value를 리턴하고, key가 존재하지 않으면 0을 리턴한다.

map.size() : map의 사이즈를 리턴한다.

map.remove(key) : key의 value를 출력하고, 해당 되는 key를  map에서 제거한다.

for (Character key : map.keySet()) : key를 순서대로 탐색한다.

 

 

주요 핵심 포인트

1. 해쉬함수를 외워야 풀수 있는 문제로 해시함수를 외운다.

2. 가장 기초가 되는 key , value 개념을 알아야 풀 수 있는 문제이다.

+ Recent posts