※ 주요 메서드 : hasNext( ) / next( )
=============================코드=============================
// Integer를 타입을 갖는 List 계열 객체 생성
List<Integer> list = new ArrayList<>();
list.add(100);
list.add(200);
list.add(300);
list.add(400);
list.add(500);
Iterator<Integer> it = list.iterator();
while(it.hasNext()) { // 다음에 읽어올 데이터가 있다면 다음 값을 가져와라!
System.out.println(it.next());
}

: List 인터페이스의 자식 클래스 중 한 종류
LinkedList와 ArrayList의 데이터 추가하는데 걸리는 시간을 화면에 출력하여 비교해보자
=============================코드=============================
// Integer를 타입을 갖는 List 계열 객체 생성
List<Integer> list1 = new ArrayList<>();
List<Integer> list2 = new LinkedList<>();
long start, end;
// 1. ArrayList로 중간에 데이터를 추가하는데 걸리는 시간
start = System.nanoTime(); // nanoTime은 long타입
for(int i = 0; i < 10000; i++) {
list1.add(0, i);
}
end = System.nanoTime();
System.out.println("ArrayList로 추가하는데 걸린 시간 >>> " + (end-start) + "ns");
// 2. LinkedList로 중간에 데이터를 추가하는데 걸리는 시간
start = System.nanoTime(); // nanoTime은 long타입
for(int i = 0; i < 10000; i++) {
list2.add(0, i);
}
end = System.nanoTime();
System.out.println("LinkedList로 추가하는데 걸린 시간 >>> " + (end-start) + "ns");

예시1)
키보드로 회원 수만큼 회원 정보를 입력 받고 member클래스를 타입으로 지정하여 객체를 생성한 뒤 ArrayList에 저장하고 저장한 회원 정보를 화면에 출력해보자
=============================코드=============================
public class Member {
// 멤버변수
private String id;
private String pwd;
private String name;
private String age;
private String phone;
private String addr;
public Member() { } // 기본 생성자
public Member(String id, String pwd, String name, String age, String phone, String addr) {
this.id = id;
this.pwd = pwd;
this.name = name;
this.age = age;
this.phone = phone;
this.addr = addr;
} // 인자 생성자
public String getId() {
return id;
}
public void setId(String id) {
this.id = id;
}
public String getPwd() {
return pwd;
}
public void setPwd(String pwd) {
this.pwd = pwd;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getAge() {
return age;
}
public void setAge(String age) {
this.age = age;
}
public String getPhone() {
return phone;
}
public void setPhone(String phone) {
this.phone = phone;
}
public String getAddr() {
return addr;
}
public void setAddr(String addr) {
this.addr = addr;
}
}
member 클래스를 활용하여 회원 정보를 출력해보자
=============================코드=============================
Scanner sc = new Scanner(System.in);
System.out.print("회원 수를 입력하세요 : ");
int memberCount = sc.nextInt();
sc.nextLine();
List<Member> list = new ArrayList<>();
// 1. 키보드로 회원 수 만큼 회원 정보를 입력 받아서 ArrayList에 저장해보자
for(int i = 0; i < memberCount; i++) {
System.out.println((i+1) + "번째 회원의 아이디, 비밀번호, 이름, 나이, 연락처, 주소를 입력하세요");
Member member = new Member(sc.nextLine(), sc.nextLine(), sc.nextLine(),
sc.nextLine(), sc.nextLine(), sc.nextLine());
list.add(member);
}
// 2. 회원 정보를 ArrayList에서 가져와서 화면에 출력해보자
for(int i = 0; i < list.size(); i++) {
Member dto = list.get(i);
System.out.println(dto.getId() + "\t" + dto.getPwd() + "\t" + dto.getName() + "\t"
+ dto.getAge() + "\t" + dto.getPhone() + "\t" + dto.getAddr());
System.out.println(":::::::::::::::::::::::::::::::::::::::::::::");
}
sc.close();

예시2)
Student 객체를 만들어서 키보드로 학생 수를 입력 받고, 입력 받은 학생 수 만큼 학생의 정보를 입력 받아서 ArrayList에 저장 후 화면에 출력하세요
(조건 - 학생정보는 학번, 이름, 학과, 연락처, 주소)
student 클래스
=============================코드=============================
public class Student {
String hakbun;
String name;
String major;
String phone;
String addr;
public String getHakbun() {
return hakbun;
}
public void setHakbun(String hakbun) {
this.hakbun = hakbun;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getMajor() {
return major;
}
public void setMajor(String major) {
this.major = major;
}
public String getPhone() {
return phone;
}
public void setPhone(String phone) {
this.phone = phone;
}
public String getAddr() {
return addr;
}
public void setAddr(String addr) {
this.addr = addr;
}
public Student() { }
public Student(String hakbun, String name, String major, String phone, String addr) {
this.hakbun = hakbun;
this.name = name;
this.major = major;
this.phone = phone;
this.addr = addr;
}
}
student 클래스를 활용하여 회원 정보를 출력해보자
=============================코드=============================
Scanner sc = new Scanner(System.in);
List<Student> st = new ArrayList<>();
System.out.print("학생 수를 입력하세요 : ");
int su = sc.nextInt();
sc.nextLine();
// 1. 키보드로 입력 받은 학생 수 만큼의 학생 정보를 키보드로 입력을 받아서 ArrayList에 저장하자
for(int i = 0; i < su; i++) {
System.out.println("학생의 학번, 이름, 학과, 연락처, 주소를 입력하세요");
//Student student = new Student(sc.nextLine(), sc.nextLine(), sc.nextLine(), sc.nextLine(), sc.nextLine());
System.out.println("======================================");
// 한번에 처리도 가능
st.add(new Student(sc.nextLine(), sc.nextLine(), sc.nextLine(), sc.nextLine(), sc.nextLine()));
}
System.out.println();
// 2. ArrayList에 저장된 학생의 정보를 화면에 출력해보자
for(int i = 0; i < st.size(); i++) {
Student stu = st.get(i); // st.get(i)는 주소값을 의미
System.out.println("학번 : " + stu.getHakbun());
System.out.println("이름 : " + stu.getName());
System.out.println("학과 : " + stu.getMajor());
System.out.println("연락처 : " + stu.getPhone());
System.out.println("주소 : " + stu.getAddr());
System.out.println("::::::::::::::::::::::::::::::::::::");
}
sc.close();
