자바 코테용 함수

OneTwoThree·2023년 1월 12일
0

자바

목록 보기
4/19

출처

eqauls

//객체 비교에 사용함
h1.equals(h2);

equals()는 객체의 값 비교를 위해 사용한다. ==는 참조값을 비교하기 때문에 같은 객체를 가리켜야만 true를 얻는다. equals()는 다른 객체더라도 객체의 내용이 같으면 true를 얻는다.

HashMap

import java.util.HashMap;

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

// 2. key-value 넣기, 키 값 수정 가능 
hm.put("java", 0);

// 3. 키로 값 가져오기
hm.get("java");

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

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

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

//7. entrySet() 으로 키, 밸류 값 모두 사용해서 순회
//import java.util.Map.Entry 필요
for (Entry<String,Integer> e : hm.entrySet()){
	e.getKey();
    e.getValue();
}

//8. remove(key) 로 값 삭제 
hm.remove("java");

//9. 키의 개수
hm.size();

Arrays

int arr[] = {10, 8, 11, 2, 3, 0};

// 배열 깊은 복사 
int[] temp = arr.clone();

// 1. 오름차순 {0, 2, 3, 8, 10, 11}
Arrays.sort(arr1);
//문자열의 경우 사전순으로 정렬한다 {"88","9"} -> {"9","88"}

// 2. 내림차순 {11, 10, 8, 3, 2, 0}
Arrays.sort(arr1, Collections.reverseOrder());

// 3. 일부만 정렬 {2, 8, 11, 10, 3, 0} (0~4만 정렬)
Arrays.sort(arr1, 0, 4)

// 4. 오름차순 정렬하면 binary search로 특정 값을 찾을 수 있다.
Arrays.binarySearch(arr1, 2);

// 5. 배열을 어레이리스트로 변환할 떼!
List list = Arrays.asList(arr1);

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

String

// 0. 길이
String str = "hello world";
//길이 : 메소드임
str.length();
//int to String
String.valueOf(10);
Integer.toString(10);

// 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("");

또는 문자열을 char의 배열로 만들 때 : for-each에 쓸 때는 이렇게 써야함
str.toCharArray();

// 대소문자 변경 
str = str.toUpperCase();		// HELLO WORLD
str = str.toLowerCase();		// hello world
c = Character.toUpperCase(c); // h->H

//char의 대소문자 확인
char c = 'c'
Character.isLowerCase(c);

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

// 접두사 접미사 확인
문자열.startsWith(문자열), 문자열. endsWith(문자열)
boolean 반환함 

//i 인덱스의 문자 반환
문자열.charAt(i);
char 형으로 반환함 
//특정 문자의 인덱스 파악 
문자열.indexOf(`a`);

// 비교

String s1 = "abc";
String s2 = new StringBuilder(s1).reverse().toString();
//그냥 비교
System.out.println(s1.equals(s2));
//대소문자 무시하고 비교
System.out.println(s1.equalsIgnoreCase(s2));

//알파벳인지 확인
Character.isAlphabetic('a');

//정규식 사용해서 대체하기
//A-Z가 아닌 것들은 ""로 대체한다
input = input.toUpperCase().replaceAll("[^A-Z]","");

StringBuilder

// 스트링 : 메소드를 적용하면 새로운 스트링이 생김 (원본 스트링은 변하지 않음)
// 스트링 빌더 : 메소드를 적용해도 원본에 적용됨 (메모리 낭비 줄임)

//String s를 인자로 전달해서 StringBuilder 객체 만들고 뒤집기 
String temp = new StringBuilder(s).reverse().toString();

ArrayList

List와 배열간의 변환

출처

//List->배열
//1. toArray 사용

//ArrayList는 Wrapper클래스인 Integer 형으로 만듬 
ArrayList<Integer> arr = new ArrayList<>();
//배열도 Integer형이어야 toArray로 변환가능. 배열이 int형일 경우 불가능 
Integer[] array = arr.toArray(new Integer[arr.size()]);

//2. for문 사용 
//ArrayList는 Wrapper 클래스고 배열은 기본 자료형일 경우 for문을 사용해야 함
for (Integer i : arr){
            answer[index++]= i.intValue();
            
        }
//intValue를 이용해서 Wrapper 클래스를 기본 자료형으로 바꿔줌 

//배열 -> List
//1. Arrays.asList() 사용
Integer[] arr = {1,2,3};
ArrayList<Integer> arrList = new ArrayList<>(Arrays.asList(arr));
//2. for문 사용 
//마찬가지로 일반 자료형 -> Wrapper 클래스인 경우는 for문 사용해야함 \

  • ArrayList 정렬하기
    참고

Math

//min
answer[i]=Math.min(answer[i],p);

Iterator

참고

TreeSet

  • TreeSet은 집합인데 정렬이 되어있는 집합임
  • 집합이므로 중복 제거
        //TreeSet은 집합인데 정렬이 된 집합임. Collections.reverseOrder는 내림차순으로 정렬하기 위함
        //디폴트는 오름차순으로 정렬됨
        TreeSet<Integer> Tset = new TreeSet<>(Collections.reverseOrder());
        
        //원소 추가
        Tset.add(1);
        
        //원소 삭제
        Tset.remove(1);
        
        //원소 개수 
        Tset.size();
        

        //정렬된 것에서 제일 앞 값 
        Tset.first();
        //정렬된 것에서 제일 마지막 값 
        Tset.last();
               
        //foreach로 순회 
        for (int x : Tset){
        	System.out.println(x);
        }
        
        
        
        
        

0개의 댓글