IT/Java
컬렉션 프레임워크03 List 인터페이스
어센트
2020. 1. 8. 22:03
List 인터페이스는 Collection 하위에 존재하는 인터페이스로 객체를 순서에 따라 저장하고 관리하는데 필요한 메서드가 선언된 인터페이스이다. 배열의 기능을 구현하기 위한 메서드가 선언되어있다.
List 인터페이스 아래에 ArrayList,Vector,LinkedList가 존재한다.
ArrayList와 Vector은 객체 배열 클래스로 일반적으로 ArrayList 를 많이 이용하고 Vector의 경우 멀티 쓰레드 프로그램에서 동기화를 지원한다. 동기화란 두개의 쓰레드가 동시에 하나의 리소스에 접근 할 때 순서를 맞추어서 데이터의 오류를 방지하기위해 존재한다.
ArrayList vs LinkedList
둘다 자료의 순차적인 구조를 표현한 클래스이다.
ArrayLIst는 배열을 구현한 클래스로 논리적 순서와 물리적 순서가 동일하다.
LinkedList는 논리적으로 순차적인 구조이지만 물리적으로는 순차적이지 않다. 삽입,삭제가 용이하다.
예제코드
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
|
public class Member {
private int memberId;
private String memberName;
public Member() {}
public Member(int memberId,String memberName) {
this.memberId = memberId;
this.memberName = memberName;
}
public int getMemberId() {
return memberId;
}
public void setMemberId(int memberId) {
this.memberId = memberId;
}
public String getMemberName() {
return memberName;
}
public void setMemberName(String memberName) {
this.memberName = memberName;
}
public String toString() {
return memberName +"회원님의 아이디는 "+memberId +"입니다.";
}
}
|
cs |
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
|
public class LinkedListTest {
public static void main(String[] args) {
LinkedList<String> myList= new LinkedList<String>();
myList.add("A");
myList.add("B");
myList.add("C");
System.out.println(myList);
myList.add(1,"D");//1번 인덱스의 리스트에 삽입
System.out.println(myList);
myList.remove(1);
myList.removeLast();
System.out.println(myList);
for(int i=0;i<myList.size();i++) {
String s = myList.get(i); //set인터페이스에는 존재하지않다 set은 중복을 가지지않기때문에
//set은 다른 방식으로 데이터를 순회한다.
System.out.println(s);
}
}
}
|
cs |
출력결과