List 인터페이스를 구현한 클래스로 저장순서가 유지되고 중복을 허용한다.
또한 데이터의 저장공간으로 배열을 사용한다.
package test.main;
import java.util.ArrayList;
import java.util.List;
import java.util.function.Consumer;
import test.mypac.Member;
public class MainClass05 {
public static void main(String[] args) {
//1. Member객체를 담을 수 있는 ArrayList객체를 생성해서 참조값을 members라는 지역변수에 담아보세요.
ArrayList<Member> members = new ArrayList<>();
//2. 3명의 회원정보를 Member객체에 각각 담아보세요. (Member 객체가 3개 생성되어야함)
members.add(new Member(1, "김구라", "노량진"));
members.add(new Member(2, "해골", "행신동"));
members.add(new Member(3, "원숭이", "동물원"));
Member mem = new Member();
mem.num = 4;
mem.name = "주뎅이";
mem.addr = "동물원";
//3. 위에서 생성된 Member객체의 참조값을 members List객체에 모두 담아보세요.
List<Member> members2 = members;
/*
* 4. members List객체에 담긴 내용을 이용해서 회원 목록을 아래와 같은 형식으로
* 반복문 돌면서 출력해보세요.
*
* 번호: 1, 이름: 김구라, 주소: 노량진```
* 번호: 2, 이름: 해골, 주소: 행신동
*/
for(int i=0; i<members2.size(); i++) {
System.out.println("번호:" + members2.get(i).num + " 이름:" + members2.get(i).name + " 주소:" + members2.get(i).addr);
}
Consumer<Member> c = new Consumer<>() {
@Override
public void accept(Member t) {
System.out.println("번호:" + t.num + " 이름:" + t.name + " 주소:" + t.addr);
}
};
members2.forEach(c);
}
}
각 요소가 이전 요소와 다음 요소에 대한 참조를 가지는 노드로 구성된 연결 리스트를 구현하는 클래스다.
배열과 다르게 인덱스로 직접 접근하는 것은 불가능하나 첫 번째 요소부터 시작해 순차적으로 접근한다.
따라서 요소의 삽입, 삭제, 이동등이 빠르게 이루어진다.
import java.util.LinkedList;
public class Example {
public static void main(String[] args) {
// LinkedList 생성
LinkedList<String> list = new LinkedList<String>();
// 요소 추가
list.add("apple");
list.add("banana");
list.add("orange");
// 요소 접근
System.out.println(list.get(0)); // 출력: apple
// 요소 삭제
list.remove(1); // banana 삭제
// 요소 검색
System.out.println(list.indexOf("orange")); // 출력: 1
// 크기 확인
System.out.println(list.size()); // 출력: 2
}
}