728x90
Cursor 개념
SQL문을 처리한 결과 집합을 가리키는 개념으로
일종의 포인터(C 포인터 개념과 유사하다고 함)
자바하는데 왜 뜬금없이 SQL이 나오나 생각이 들텐데 필자도 그렇다...
여튼 아래는 인텔리제이에서 파보다보니까 cursor가 나오게 됐고 "기준점"정도로 이해하면 될 것 같다
1.listIterator(int index) : iterator를 사용할 컬렉션의 해당 인덱스번호부터 값을 가져온다
// 해당 변수의 1번 인덱스부터 받아오기
ListIterator<Student> li2 = al.listIterator(1);
2.hasNext()는 while문으로 한번 돌리고 나면 기준점이 끝으로 가있어 다시 돌려도 의미x
while(li.hasNext()){
System.out.print(li.next()+" "); // a(0점) a(1점) a(2점) a(3점) a(4점)
}
// hasNext() 두번째 돌리면 처음부터 다시 가는게 아니라 이미 끝에 있기에 의미없음
while(li.hasNext()){
System.out.print(li.next()+" "); // 출력x
}
3.출력x던 hasNext()를 hasPrevious()를 쓰면 다시 출력이 된다
// hasNext() 두번째 돌리면 처음부터 다시 가는게 아니라 이미 끝에 있기에 의미없음
while(li.hasNext()){
System.out.print(li.next()+" "); // 출력x
}
System.out.println();
while(li.hasPrevious()){
System.out.print(li.previous()+" "); // a(4점) a(3점) a(2점) a(1점) a(0점)
}
System.out.println();
// hasPrevious()로 앞으로 돌렸기에 기준점이 앞으로 와있어 hasNext() 다시 작동
while(li.hasNext()){
System.out.print(li.next()+" "); // a(0점) a(1점) a(2점) a(3점) a(4점)
}
원데이터인 ArrayList인 al에 add하면 추가값이 잘 나오는데 ListIterator인 li2에 add하면 값이 while+hasNext()에서 안나온다. 근데 디버깅하면 안에 size도 그렇고 값이 추가된 것 같이 나오는데 이것저것 해봤지만 미스테리
아직까지 왜 5,6이 추가 안됐는지는 미지수고 더 파보다간 아무것도 못할 것 같아서
나중에 다시보기로 하자
728x90
반응형
'JAVA > review of learning' 카테고리의 다른 글
[IDE][IntelliJ] 라이브러리 등록하는 방법 (0) | 2022.12.12 |
---|---|
[IDE][IntelliJ] 런이 실행 안될 때 1 (0) | 2022.08.07 |
[Java] 이클립스 간편단축키 : 소문자to대문자(ctrl + shift + x), 코드 자동 생성(alt + shift + s) (0) | 2022.05.05 |
[Java] 이클립스 workspace 위치 변경하거나 다른 컴퓨터로 옮겼을 때 세팅방법 (0) | 2022.04.26 |
[Java] 메뉴구현 코드 : MVC 로직 설명 (0) | 2022.04.03 |