1. ArrayList
빈도수가 가장 높은 Collection Class입니다.
List 인터페이스를 구현합니다. 따라서 앞서 설명한 List의 특징들을 모두 담고있습니다.
List의 특징은 이전 포스팅 참고
2019/07/15 - [프로그래밍 언어/Java] - Java - 컬렉션 프레임워크
인덱스는 0부터 시작하게 됩니다. 순서대로 0..1..2..3.. 저장이 됩니다.
배열에 저장공간이 부족한 경우 큰 새로운 배열 생성 후 복사하여 저장됩니다.
2. ArrayList 정렬
기본적으로 Collections에서 sort를 지원합니다. 따라서
ArrayList list = new ArrayList(10);
list.add(new Integer(5));
list.add(new Integer(4));
list.add(new Integer(3));
list.add(new Integer(2));
list.add(new Integer(0));
list.add(new Integer(1));
list.add(new Integer(3));
Collections.sort(list);
0,1,2,3,4,5
오름차순으로 정렬이 됩니다. 만약에 ArrayList에 있는 특정 List의 값을 기준으로 정렬을 적용하고자 한다면
static class CompareRegDateDesc implements Comparator<Board> {
@Override
public int compare(Board o1, Board o2) {
// TODO Auto-generated method stub
return o2.getRegDate().compareTo(o1.getRegDate());
}
}
즉 Board라는 객체의 날짜를 기준으로 정렬하는 메서드를 통해 다음과 같이 적용시킵니다.
Collections.sort(mBoardList1,new CompareRegDateDesc());
3. ArrayList 수정(set)
간단하게 ArrayList 내용을 업데이트하고 싶으면 set메서드를 호출하면 됩니다.
list.set(2, "AA");
2번째 요소를 AA로 바꾼다는 뜻입니다.
그렇다면 ArrayList의 내부 객체의 내용을 수정하고 싶다면..?? 좀 복잡해집니다. 이때는 스캔을 해서 해당 객체를 찾고
그 인덱스를 부여하여 수정을 해줍니다.
//리스트에서 해당 수정된 객체를 찾아서 그 리스트에서 수정
Board temp = new Board();
temp.setId(id1);
int index=0;
for(int idx=0; idx<mBoardList1.size(); idx++){
if(compareToId(temp,mBoardList1.get(idx))){
index=idx;
Log.i("dd","index: "+index);
mBoardList1.set(index,data2);
}
}
//ID 비교 전용 메소드
private boolean compareToId(Board o1, Board o2) {
//대소문자 구분 하는 상태
return o1.getId().equals(o2.getId());
//대소문자 구분 하지 않는 상태
//return o1.getId().toLowerCase().equals(o2.getId().toLowerCase());
}
즉 임시 객체 temp를 통해 게시글 Id를 넣어주고 ArrayList의 크기만큼 for문을 돌려서
compareToId(ID비교 전용하는 메서드)를 통해 ArrayList안에 들어있는 수정할 객체의 인덱스를 찾아서
해당 인덱스를 객체로 수정을 합니다.
4. Vector
public class VectorEx1 {
public static void main(String[] args) {
Vector vector = new Vector(5);
vector.add("1");
vector.add("2");
vector.add("3");
print(vector);
System.out.println();
vector.trimToSize();
System.out.println("after trimToSize()");
print(vector);
System.out.println();
vector.ensureCapacity(6);
System.out.println("after ensureCapacity()");
print(vector);
System.out.println();
vector.setSize(7);
System.out.println("after setSize()");
print(vector);
System.out.println();
vector.clear();
System.out.println("after clear()");
print(vector);
}
public static void print(Vector vector) {
System.out.println(vector);
System.out.println("size : " + vector.size());
System.out.println("capacity : " + vector.capacity());
}
}
[1, 2, 3]
size : 3
capacity : 5
after trimToSize()
[1, 2, 3]
size : 3
capacity : 3
after ensureCapacity()
[1, 2, 3]
size : 3
capacity : 6
after setSize()
[1, 2, 3, null, null, null, null]
size : 7
capacity : 12
after clear()
[]
size : 0
capacity : 12
'프로그래밍 언어 > Java' 카테고리의 다른 글
Java- 컬렉션 프레임워크(Stack,Queue) (0) | 2019.07.17 |
---|---|
Java- 컬렉션 프레임워크(LinkedList) (0) | 2019.07.16 |
Java - 컬렉션 프레임워크 (0) | 2019.07.15 |
Java- 예외 (0) | 2019.07.12 |
Java- 인터페이스 (0) | 2019.07.11 |