Daily coding
Java Basic : day 10 - LinkedList 링크드리스트 본문
LinkedList 링크드리스트
ArrayList : 검색
( = Vector)
LinkedList : 추가, 삭제가 빈번하게 이루어질 때
단방향을의미하는 벡터는 어레이리스트랑 같은 역할 ( 위치의미가 아님 )
Vector vec = new Vector();
vec.add("ddddd");
vec.size();
링크드리스트 선언 방법
1. LinkedList
LinkedList list = new LinkedList();
2. List 인터페이스로도 선언가능
// 컬렉션 중 List는 인터페이스로 정의되어있다.
// List list = new LinkedList();
if ( list.isEmpty( ) ) {
System.out.println("데이터가 하나도 없습니다.");
}
// 데이터가 있는 지 확인하는 메소드
list.add("Tigers");
list.add("Lions");
list.add(1, "Giants");
출력하기
1. for문
System.out.println("출력1. for");
for (int i = 0; i < list.size(); i++) {
String s = list.get(i);
System.out.println(s);
}
addFirst( )
// 맨 처음 요소에 추가하기
list.addFirst("Bears");
addLast()
// 맨 끝에 요소 추가하기
list.addLast("Twins");
2. foreach
System.out.println("출력2. foreach");
for(String str : list) {
System.out.println(str);
}
3. Iterator 사용 : 반복자 == 포인터(주소)를 가져옴
Iterator it; // = Stirng s 와 비슷한 의미
it = list.iterator(); // 제일 첫 노드의 주소값을 가져옴
System.out.println("출력3. Iterator 사용하기");
while ( it.hasNext( ) ) { // -> 출력할 다음 노드가 있을 때 까지 루프를 반복
String temp = it.next();
// next()는 현제 데이터를 넘겨주고 다음 데이터로 포인터를 이동한다.
System.out.println(temp);
// 만약 다음 노드가 없으면 next()의 포인터는 null이 되고
// while문의 조건에 맞지 않아 반복문이 종료된다.
}
Iterator은 List 인터페이스보다는
Map의 데이터를 출력할 때 반드시 사용해야하는 인터페이스이므로 잘 알아두기
// ArrayList와 LinkedList는 서로 호환이 가능하다
ArrayList arrlist = new ArrayList(list);
System.out.println("LinkedList를 ArrayList로 호환하기");
for (int j = 0; j < arrlist.size(); j++) {
System.out.println(arrlist.get(j));
}
}
}
'Language > Java_basic' 카테고리의 다른 글
Java Basic : day 12 - Singleton 싱글턴 패턴 (0) | 2019.12.04 |
---|---|
Java Basic : day 11 - Example01: Baseball 선수정보 입력(HashMap, TreeMap사용) (0) | 2019.12.02 |
Java Basic : day 11 - Interface 인터페이스 (0) | 2019.12.02 |
Java Basic : day 11 - Abstract 추상 클래스 (0) | 2019.12.02 |
Java Basic : day 11 - Map ( HashMap, TreeMap ) (0) | 2019.12.02 |