Jam's story
24일차- 제네릭 프레임워크 본문
Period
Between() -static 메소드
until() =인스턴스 메소드 (객체명으로 사용)
Duration
- 시간간격을 계산
[Second, Nano] 만 계산이 된다.
//60분-1분
//1시간 == 60 분== 60*60초
//하루==24시간==24*60분 ==24*60*60초 ==24*60*60*1000ms
long hour=d.getSeconds()/60*60;
long minute=(d.getSeconds()-hour*3600)/60;
long second=(d.getSeconds()-hour*3600-minute*60)%60;
int nano=d.getNano();
LocalTime t1=LocalTime.now();
LocalTime t2=LocalTime.of(12, 34,56);
System.out.println(t1);
Duration d=Duration.between(t1, t2);
System.out.println(d.between(t1, t2));
System.out.println(d.getSeconds());
System.out.println(d.getNano());
of() 설정
with() 수정
plus() +수정
minus() -수정
예제
Period p=Period.of(1,12,31);
p.withYears(2);
p.withMonths(3);
p.withDays(3);
p.minusYears(3);
Date, Calendar ->포맷, 파싱- >SimpleDateFormat 클래스 사용
JDK 1.8 LocalDate ,LocalTme,LocalDtaeTime -> 포맷,파싱 ->DateTiemFormatter 클래스 사용
DateTimeFormatter
LocalDate today=LocalDate.now();
System.out.println(today);
DateTimeFormatter formatter=DateTimeFormatter.ofLocalizedDate(FormatStyle.LONG);
DateTimeFormatter formatter2=DateTimeFormatter.ofLocalizedDate(FormatStyle.SHORT);
String stoday=formatter.format(today);
System.out.println(stoday);
String stoday2=formatter2.format(today);
System.out.println(stoday2);
//원하는 형태로 출력
String pattern = "yyyy년 M월 dd일";
DateTimeFormatter formatter3 =DateTimeFormatter.ofPattern(pattern);
String stoday3=formatter3.format(today);
System.out.println(stoday3);
파싱
문자열-> 날짜 /시간 형식
//String ->LocalDateTime 변환
String s1="2022년 2월 15일 12시 34분 56초";
String pattern="yyyy년 M월 dd일 HH시 mm분 ss초";
DateTimeFormatter formatter =DateTimeFormatter.ofPattern(pattern);
LocalDateTime t=LocalDateTime.parse(s1,formatter);
System.out.println(t);
만일 오류가 난다면, pattern과 s1의 공백차이일 수 있다.
->s1을 그대로 복사해서 pattern에 붙여넣은담에 패턴기호(yyyy)로 바꾸기
컬렉션 프레임워크
완전 중요!!!!!!!
데이터 집합 군을 저장(관리- 추가 ,수정, 삭제 등등) 하는 클래스를 표준화 설계
클래스(데이터 군 관리)
Collection 인터페이스
ArrayList
가장많이사용되는 컬렉션클래스
list인터페이스 구현한 클래스
순서O 중복O
배열의 단점
1.배열 크기 자동증가 x
2.배열 삽입 (insert)
3.삭제 remove
4.등등
list.add
int -> Integer->Object 오토박싱
ㅇ
all 이 들어간것은 집합을 뜻함
Iterator ir=iterator 반복자
모든 요소를 출력 (암기)
Iterator ir=class5.iterator();
//hasNext=> boolean
while (ir.hasNext()) {
//다음요소를 읽어옴
String name=(String)ir.next();
System.out.println(name);
}
Clone
오름차순정렬 후 출력
//이름을 오름차순으로 정렬해서 출력
ArrayList class5Clone=(ArrayList)class5.clone(); //복제
System.out.println(class5Clone);
Collections.sort(class5Clone); //정렬
System.out.println(class5Clone);
//
Collections.sort(list , 비교기준 )
오름차순 정렬
public int compare(Object o1, Object o2) {
if(o1 instanceof Student && o2 instanceof Student ) {
Student s1=(Student) o1;
Student s2=(Student) o2;
return s2.tot-s1.tot;
}
Arrays.asList
String -> Arraylist[] 변환
String[] names= {"r","d","s","sa","sdf"};
ArrayList list=new ArrayList(Arrays.asList(names));
ArrayList
Vector (멀티스레드에 안전 == 동기화되어있다. )
Vector 용량추가 자유롭다.
열거자로 출력
Enumeration en=v.elements();
while (en.hasMoreElements()) {
String name=(String) en.nextElement();
System.out.println(name);
}
반복자와 열거자의 차이
fail-fast 차이
첫번째 요소를 가져오겠다.
v.firstElement()== v.get(0) == v.elementAt(0)
v.lastElement()==v.get(v.size()-1)
v.insertElement(요소, 위치(index)) == v.add(요소, 위치(index))
v.[list]Iterator(0)
Iterator ,ListIterator, Enumeration
v,remove(인덱스)
v.remove(객체)
v.removeElementAt(인덱스)
v.removeElement(객체)
Ojbect[] toArray() ->String 배열
Object[] m=(String[])v.toArray();
LinkedList
배열- 장) 읽기 가장 빠르다. 단) 비순차적, 삽입 삭제 무지 느리다. 이러한 단점을 보완 -> LinkedList
불연속적으로 존재하는 데이터를 서로 연결한 형태로 구성되어있다.
'Java' 카테고리의 다른 글
[컬렉션 프레임워크] -ArrayList (0) | 2022.03.24 |
---|---|
25일차 (0) | 2022.03.24 |
23일차- 날짜와 시간, 형식화 (0) | 2022.03.22 |
22일차 (0) | 2022.03.21 |
정규표현식 -java.util.regex 패키지 (0) | 2022.03.20 |
Comments