사용자가 URL요청한다.(링크를 클릭한다.)
즉 HTTP서버에 요청을 보낸다.
요청에는 HTTP 메서드(GET,POST 등등) 헤더, 본문 등이 표함된다.
폼을 제출한 후 서버를 바로 종료하면 응답을 받지 못하는 경우가 생길 수도 있다
응답이 완료될 떄 까지 브라우저를 유지해야한다.
이진수로 표현된 데이터에 대한 연산을 수행한다.
0011 & 0001 = 0001
0001 | 0011 = 0011
다를 때 1이 된다.
0101 ^ 0011 = 0110
비트 반전
0101~ = 1010
왼쪽으로 부호비트를 이동시킨다.
int a=5 // 0101
int c = a<<1 // 1010(왼쪽으로 한 칸이동)
부호비트는 유지하고 오른쪽으로 이동한다.
int a = 5 //0101
int c = a>>1 //0010
비트를 오른쪽으로 이동하고 빈칸을 0으로 메꾼다.
int a = -5; // 11111111111111111111111111111011
int c = a >>> 1; // 01111111111111111111111111111101 (2147483645)
// Map.Entry 리스트로 변환
List<Map.Entry<String, Integer>> list = new ArrayList<>(map.entrySet());
// 값으로 정렬 collections하면서 override하는 방법
Collections.sort(list, new Comparator<Map.Entry<String, Integer>>() {
@Override
public int compare(Map.Entry<String, Integer> o1, Map.Entry<String, Integer> o2) {
return o1.getValue().compareTo(o2.getValue());
}
});
//이 방법을 더 선호할 듯 하다.
// Comparator를 사용하여 값으로 비교
Comparator<Map.Entry<String, Integer>> valueComparator = new Comparator<Map.Entry<String, Integer>>() {
@Override
public int compare(Map.Entry<String, Integer> e1, Map.Entry<String, Integer> e2) {
return e1.getValue().compareTo(e2.getValue());
}
};
// 정렬된 리스트를 LinkedHashMap에 삽입
LinkedHashMap<String, Integer> sortedMap = new LinkedHashMap<>();
//결과 확인
for (Map.Entry<String, Integer> entry : list) {
sortedMap.put(entry.getKey(), entry.getValue());
}
class Person implements Comparable<Person> {//implements함
private String name;
private int age;
@Override
public int compareTo(Person other) {
return Integer.compare(this.age, other.age);
}
@Override
public String toString() {
return name + " : " + age;
}
// toString오버라이드도 잘 알아두자.
List<Person> people = new ArrayList<>();
people.add(new Person("Alice", 30));
people.add(new Person("Bob", 25));
people.add(new Person("Charlie", 35));
people.add(new Person("David", 25));
people.add(new Person("Edward", 30));
// 나이로만 정렬하는 Comparator
Comparator<Person> ageComparator = new Comparator<Person>() {
@Override
public int compare(Person p1, Person p2) {
return Integer.compare(p1.getAge(), p2.getAge());
}
};
Collections.sort(people, ageComparator);
Map<String, Integer> map = new HashMap<>();
map.put("one", 1);
map.put("two", 2);
for (Map.Entry<String, Integer> entry : map.entrySet()) {
System.out.println(entry.getKey() + " : " + entry.getValue());
}
for (Map.Entry<String, Integer> entry : map.entrySet()) {
entry.setValue(entry.getValue() + 1);
}
List<Map.Entry<String, Integer>> entries = new ArrayList<>(map.entrySet());
entries.sort(Map.Entry.comparingByValue());
(위의 코드는 value를 기준으로 정렬하는 방법이다.)
시키는대로만 하면 돼서 어렵지는 않았던 문제 근데 문제는 내가 Comparator사용법을 잘 모름ㅋ
아이패드로 깔끔하게 적어볼까 했지만 역시 디지털보다는 아날로그가 좋기 떄문에 이 방법을 선택했다...그래도 언제 어디서나 보는 맛은 ipad필기가 더 좋기는 한데 종이에 쓸 때 그 필기감을 도저히 대체할 수가 없어서 슬프다. 그래도 이것저것 정리하고 그리는데는 ipad가 깔끔하니까... 그렇겠지?...
사실 오늘 공부한 내용 적을게 훨씬 많은데 다 못적었당 손으로 쓰는데 한 시간 컴퓨터로 정리하는데 딱 한 시간 걸리는 듯 하다.
ㅠㅠ 아쉬웡
#99클럽 #코딩테스트준비 #개발자취업 #항해99 #TIL