[Java] PS용 함수 정리

ewillwin·2023년 9월 14일
0

아무거나

목록 보기
22/23

Import

import java.util.*;
import java.io.*;


Sort 함수

int[] arr = {1, 3, 5, 4, 2}
Arrays.sort(arr);

Math 함수

int answer = 1;

// 1. 최대 최소
answer = Math.max(answer, 100);
answer = Math.min(answer, 100);

// 2. 절댓값
answer = Math.abs();

// 3. 올림 내림 반올림
Math.ceil(-3.2);   // -3
Math.floor(-3.2);  // -4
Math.round(-3.26); // -3 첫째자리에서 반올림

// 3-1. 소수 둘째, 셋째 자리에서 반올림
double a = 1.2345;
String b = String.format("%.1f", a); //1.f는 둘째자리에서 반올림

// 4. 제곱 제곱근
Math.pow(2, 2);	// 2^2 = 4
Maht.sqrt(4);	// 2

Arrays

int[] arr = {3, 4, 2, 5, 1};

// 1. 오름차순 {1, 2, 3, 4, 5}
Arrays.sort(arr);

// 2. 내림차순 {5, 4, 3, 2, 1}
Arrays.sort(arr, Collections.reverseOrder());

// 3. 일부만 정렬 {2, 3, 4, 5, 1} (0~4만 정렬)
Arrays.sort(arr, 0, 4);

// 4. 오름차순 정렬하여 binary search로 특정 값 찾기
Arrays.binarySearch(arr, 2);

// 5. 배열을 arraylist로 변환
List list = Arrays.asList(Arr);

// 6. 배열의 특정 범위 자르기
int[] tmp = Arrays.copyOfRange(arr, 0, 3);

length / length() / size()

  • length: array의 길이 (arr.length)
  • length(): String related object (str.length())
  • size(): Collections object (list.size())
// 1. length
int[] arr = new arr[3];
System.out.println(arr.length);

// 2. length()
String arr = "java";
System.out.println(str.length());

// 3. size()
ArrayList<Integer> list = new ArrayList<>();
System.out.println(list.size());

String

String str = "hello world";

// 1. 자르기
str.split(" ");
str.substring(0, 5);
for(int i=0; i<str.length(); i++) str.charAt(i);

// 1-1. 문자열을 배열로 만들고 싶을 때
String str = "12345";
String[] Arr = str.split("");

// 대소문자 변경
str = str.toUpperCase();
str = str.toLowerCase();

// 한번 쓴 문자열은 변경 불가. substring 이용해서 새로운 변수로 선언해야함
String name="starfucks";
String newname = name.substring(0, 4) + 'b' + name.substring(5);

HashMap

// 1. 선언
HashMap<String, Integer> hm = new HashMap<>();

// 2. key-value 넣기
hm.put("java", 0);

// 3. key로 value 가져오기
hm.get("java");

// 4. containsKey()로 존재유무 확인
if (!hm.containsKey("java")) hm.put("java", 1);

// 5. 특정 키가 없으면 값 설정, 있으면 기존 값 가져오는 함수
hm.put("java", hm.getOrDefault("java", 3));

// 6. keySet() 함수로 맵 순회
for (String key : hm.keySet()) {
	hm.get(key);
}

ArrayList

// 1. 선언
ArrayList<String> list = new ArrayList<>();

// 2. 삽입
list.add("java");		// {"java"}
list.add(0, "ryu");		// {"ryu", "java"} (0번 인덱스에 삽입)

// 3. 수정
list.set(1, "c++");	// {"ryu", "c++"}

// 4. 삭제
list.remove(1);			// {"ryu"}

// 5. 값 존재 유무 확인
list.contains("java");	// false
list.indexOf("ryu");	// 0 (없으면 -1 리턴)

// 6. iterator 사용
Iterator it = list.iterator();

// 6-1. 인덱스 오름차순 순회
while (it.hasNext()) {

}

// 6-2. 인덱스 내림차순 순회
while (it.hasPrevious()) {

}

// 7. 중복 없이 값을 넣고 싶을 때
if (list.indexOf(value) < 0) { // 없으면 -1을 리턴
	list.put(value);
}

// 8. 리스트 값 하나씩 가져올 때 (int일 경우)
for (int i=0; i<list.size(); i++) {
	list.get(i).intValue();
}

Queue

// 1. 선언
Queue<Integer> q = new LinkedList<>();		// linked list로 선언

// 2. 삽입
q.add(10);		// {10}
q.offer(2);		// {10, 2}

// 3. head 값 반환
q.peek();		// 10

// 4. 삭제
q.remove();		// head 값 삭제
q.poll(); 		// head 값 삭제

// 5. 초기화
q.clear();

// 6. 비었는 지
q.isEmpty();

// 7. pair 구현
static class Node{
	int y;
    int x;
    int dist;
    
    Node(int y, int x, int dist){
    	this.y = y;
        this.x = x;
        this.dist = dist;
    }
}

Queue<Node> queue = new LinkedList<>();
queue.add(new Node(1, 2, 3));
Node node = queue.poll();

PriorityQueue

// 1. 선언
Queue<Integer> MinHeap = new PriorityQueue<>();
Queue<Integer> MaxHeap = new PriorityQueue<>(comparator.reverseOrder());

// 2. 삽입
heap.add(3);

// 3. 삭제
heap.remove();

// 4. root 값 추출
heap.peek();

profile
💼 Software Engineer @ LG Electronics | 🎓 SungKyunKwan Univ. CSE

0개의 댓글