//객체 비교에 사용함
h1.equals(h2);
equals()
는 객체의 값 비교를 위해 사용한다. ==
는 참조값을 비교하기 때문에 같은 객체를 가리켜야만 true를 얻는다. equals()
는 다른 객체더라도 객체의 내용이 같으면 true를 얻는다.
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();
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);
// 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]","");
// 스트링 : 메소드를 적용하면 새로운 스트링이 생김 (원본 스트링은 변하지 않음)
// 스트링 빌더 : 메소드를 적용해도 원본에 적용됨 (메모리 낭비 줄임)
//String s를 인자로 전달해서 StringBuilder 객체 만들고 뒤집기
String temp = new StringBuilder(s).reverse().toString();
//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문 사용해야함 \
//min
answer[i]=Math.min(answer[i],p);
//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);
}