코테에서 익힌것

bomb·2023년 9월 12일
  1. 문자변환(toUpperCase)
  • Char 대문자로 변환 : Character.toUpperCase(변환을 원하는 단어)
    String s = "asd";
    var c = Character.toUpperCase(s.charAt(0));
  • String 전체 대문자 변환 : String s = "asd"; String asd = s.toUpperCase();
  1. 리스트 사이즈 구하기
    List lists;
    lists.size(); : 리스트 사이즈

  2. 길이 관련
    length : 배열의 길이
    length() : 문자열(String)의 길이
    size() : ArrayList의 길이를 확인할 때(Collections)

  3. List에서 합산 : j에서 j+i-1까지 합친다.
    Arrays.stream(elemts, j, j+i).sum();

  • 우선순위 큐
    Queue pq = new PriorityQueue<>();
    - pq.peek() : 맨 앞 내용만 가져옴.
    - pq.poll() : 맨앞내용 pop 할 때
    - PriorityQueue pq = new PriorityQueue<>(Comparator.reverseOrder()); : 내림차순

  • Queue divisions = new LinkedList<>();
    - pq.peek() : 맨 앞 내용만 가져옴.
    - pq.poll() : 맨앞내용 pop
  1. entrySet : map에서 key, value를 모두 가져온다.
    List<Map.Entry<Integer, Integer>> entryList = new ArrayList<>(map.entrySet());
    	Map<Integer, Integer> maps = new HashMap<>();
    for(var m : maps.entrySet()) {
    m.getKey();
    m.getValue();
    }
    int value = map.get(key) : 밸류값 가져오기
    map.put(key, value) : 키밸류 넣기
    map.keySet() : 키값 전체 가져오기
    map.values() : 밸류값 전체 가져오기
  • 기존의 키에 해당하는 밸류값 1개씩 증가시키기
    map.put(top, map.getOrDefault(key, 0) + 1);

[value값 내림차순 정렬, 오름차순은 map.get(a)-map.get(b)]
맵의 키값들 리스트로 가져와서 => 정렬(map의 밸류로) => 맵에서 키에 해당하는 밸류값 가져온다.
List keys = new ArrayList<>(map.keySet());
keys.sort((a, b) -> map.get(b) - map.get(a)); // value값 내림차순 정렬된 상태

for (String key : keys) {
int value = map.get(key);
}

[key값 기준으로 내림차순, 오름차순 정렬 : TreeMap]
Map<Integer, Integer> map = new TreeMap<>(Comparator.reverseOrder());

[람다식을 이용한 배열 다중조건 정렬]
// col 번째 컬럼의 값을 기준으로 오름차순 정렬하되, 만약 그 값이 동일하면 첫번째 컬럼의 값을 기준으로 내림
Arrays.sort(data, (a,b) -> {
if(a[col-1] == b[col-1]) return b[0] - a[0];
return a[col-1] - b[col-1];
});

  1. compareTo : 숫자비교
    entryList.sort((o1, o2) -> o2.getValue().compareTo(o1.getValue()));
    내림차순 정렬이며 크면 1, 같으면 0, 작으면 -1 반환한다.

내림차순 - arr.sort((a, b) -> (b + a).compareTo(a + b));
오름차순 - arr.sort((a, b) -> (a + b).compareTo(b + a));

  • 단어 단위로 문자 자르기
    String[] strings = s.split("");
    ex : String s = "a b c d";
    String[] strings = s.split(" "); <- 띄어쓰기 단위로 문자 잘림

*주의 a b <- 이런식으로 띄어쓰기 두개 나오면
split 하면 "" <= 빈칸나온다.

  • 문자열에서 특정 문자열 포함하는지
    String string1 = "1234";
    String string2 = "23";
    boolean is = string1.contains(string2);

  • 문자열에서 특정 문자열로 시작하는지
    String string1 = "1234";
    String string2 = "12";
    boolean is = string1.startsWith(string2);

  • x 진법으로 변환하기
    int num;
    String s = Integer.toString(num, 2);

  • 문자열 숫자로 변환
    int number = Integer.parseInt(str);

  • 람다식 이용해서 내림차순
    keys.sort(((a, b) -> b - a));
    응용 : list.sort((a, b) -> map.get(b) - map.get(a));

  • 람다식 이용해서 오름차순
    keys.sort(((a, b) -> a-b));
    응용 : list.sort((a, b) -> map.get(a) - map.get(b));

  • 맵에서 밸류값 가져오기
    List values = new ArrayList<>(map.values());

  • 맵에서 키값 가져오기
    List keys = new ArrayList<>(map.keySet());

  • for문없이 합(int[] 배열) : j에서 j+i-1까지 합
    Arrays.stream(arr, j, j+i).sum()

0개의 댓글