Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | ||||
4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 | 12 | 13 | 14 | 15 | 16 | 17 |
18 | 19 | 20 | 21 | 22 | 23 | 24 |
25 | 26 | 27 | 28 | 29 | 30 | 31 |
Tags
- forward
- 로그아웃
- 내일배움카드
- emmet환경설정
- 비밀번호변경
- live server 환경설정
- 국취제
- redirect
- 회원탈퇴
- 권한변경
- 별찍기
- 비밀번호암호화
- 내배카
- 페이지 재사용
- github
- 국비학원
- Git
- mvc
- jsp기본
- 관리자회원조회
- 배열
- 인코딩
- jdbc설정
- 정처기
- 페이징
- 국민취업지원제도
- 검색기능
- 회원정보수정
- jdbc환경설정
- 입력메소드
Archives
- Today
- Total
기록
*23일차 본문
#배열복사
/**
* User[] 안의 User객체를 깊은 복사하기
* - 내용이 동일한 User객체 새배열 담기
*/
public void test5() {
User[] users = new User[3];
users[0] = new User("honggd", "1234", 1000);
users[1] = new User("ssinsa", "1234", 2000);
users[2] = new User("sejong", "1234", 3000);
// 복사배열
User[] copyUsers = new User[users.length];
for(int i = 0; i < users.length; i++) {
copyUsers[i] = new User(users[i]);
}
for(User u : users)
System.out.println(u.hashCode());
for(User u : copyUsers)
System.out.println(u.hashCode());
}
#Student의 기본정렬(no.1··)외 정렬기준을 만드려면 별도의 Comparator 구현클래스 작성해야 한다.
public class StudentNameCompartor implements Comparator<Student> {
/**
* 음수 : 자리교환
* 0
* 양수
*/
@Override
public int compare(Student s1, Student s2) {
// Student#name이 String타입이므로, String타입간 정렬기준메소드(String#compareTo)를 이용
return s1.getName().compareTo(s2.getName());
}
}
#equals의 결과가 true면 동일한 hashCode 리턴
#동일한 필드를 사용해서 두 메소드를 override 해야한다.
@Override
public boolean equals(Object obj) {
Student other = (Student) obj;
if(this.no == other.no && this.name.equals(other.name))
return true;
else
return false;
}
@Override
public int hashCode() {
return Objects.hash(this.no, this.name);
}
}
@큐(Queue)
- 선입선출 (First In First Out / FIFO)
- offer 맨 마지막에 추가
- poll 맨 앞에서 추가
@스택(Stack)
- 선입후출 (First In Last Out / FILO)
- push : 맨 마지막에 추가
- pop : 맨 마지막에서 제거
@List - Sort (정렬)
#오름차순,내림차순
#ㄱㄴㄷ순 정렬
*커스텀 객체를 정렬하기
- 기본정렬기준(1개) : 해당 클래스(Student)가 Comparable 인터페이스 구현
- 그외정렬기준(n) : 별도의 Comparator 구현클래스 생성(정렬기준당 1개)
→정렬하기
- 학생번호 오름차순(기본정렬)
- 학생번호 내림차순
- 학생이름 오름차순
- 학생이름 내림차순
@LinkedList
- 중간에 요소 추가/삭제가 빈번히 일어나는 data를 관리한다면 LinkedList를 사용!
@HashSet
*HashSet
- 중복 허용
- 저장된 순서 관리 X
- get(index) 없음 : 요소 하나를 가져올 수 없다.
- 모든 요소 순차열람
- 일반 for문 X (1.for each / 2. iterator)
#iterator
#요소제거
- index를 이용한 제거 없음
- 요소와 일치하는 방식만 제공
#요소개수
#toString
*Set API
- 중복된 요소는 추가 X
*List ---> Set : 중복제거
Set ---> List : 순서적용(하나씩 접근,정렬)
*커스텀객체 Set으로 관리하기
- 동일한 데이터를 가진 객체를 중복처리하기
- equals & hashcode 오버라이드 필수
*LinkedHashSet
- 저장된 순서를 기억
- TreeSet : 기본정렬처리 (요소로 사용된 클래스는 Comparable 인터페이스 구현)
*로또번호 생성
- 1~45사이 중복없는 난수
- 오름차순 정렬
'학원 > 강의' 카테고리의 다른 글
*26일차(Thread / 동기화) (0) | 2022.03.02 |
---|---|
*25일차 (0) | 2022.02.28 |
*22일차 (Collection) (0) | 2022.02.23 |
*21일차 (파일 입출력 IO) (0) | 2022.02.22 |
*20일차 (Exception) (0) | 2022.02.21 |