Daily coding
Java Basic : day 10 - Collections Framwork : List - ArrayList 본문
Java Basic : day 10 - Collections Framwork : List - ArrayList
sunnnkim 2019. 11. 29. 18:17List
ArrayList
- 관리를 유동적으로 할 수 있는 배열이라고 생각하면 된다.
- 목적 : 데이터를 효율적으로 관리하기 위함
- collection : 데이터를 수집하는 인터페이스
Collections Framework
- List
- ArrayList : 배열처럼 사용할 수 있는 리스트
선형구조 : 0-0-0-0-0-...
검색속도가 빠르다
index number 로 관리됨(배열과 같이 0부터 시작, n-1까지)
- (Vector)
- LinkedList (C) : 현재 노드와 다음 노드가 주소값으로 연결된 리스트
빈번하게 추가, 삭제의 작업이 필요한 경우 사용하기 적합하다.
추가 / 삭제가 빈번한 곳 : 게임
- Set
- Map : Key와 Value로 데이터를 관리, key는 반드시 하나(중복시에는 데이터가 변경 됨)
Tree구조로 이루어져 있음 --> 검색에 매우 우수함
- HashMap : Key와 Value로 관리
예 : "apple" : "사과"
key value (pair : 한 쌍, pair로 관리됨 (키 값과 밸류 값))
웹에서 Json이 HashMap의 키와 밸류로 관리되기 때문에 중요하다
- TreeMap : HashMap과 기본적으로 같으나, 저장 후 자동으로 sorting 된다.
public class Lecture01_ArrayList {
public static void main(String[] args) {
ArrayList arrlist = new ArrayList();
// 아래 코드와 같다
// List list = new ArrayList<>();
// CRUD
// 추가
add( )
1. 바로 뒤에 데이터 추가하기
// add 정석 방법
Integer i = new Integer(111);
arrlist.add(i);
// 래퍼클래스는 바로 데이터 작성해서 집어넣어도 된다.
arrlist.add(222);
// 또는 ()안에 생성자를 넣어도 된다
arrlist.add(new Integer(333));
size( )
// 리스트의 크기 보는 메소드
int len = arrlist.size();
System.out.println("list 의 크기 : " + len);
get( )
// 리스트 데이터 출력하기
Integer out = arrlist.get(0); // 어레이리스트는 배열의 인덱스와 동일하게 0부터 시작한다.
System.out.println(out); // 111
// 어레이리스트 모두 출력하기 : for문
for (int j = 0; j < arrlist.size(); j++) {
Integer var = arrlist.get(j);
System.out.println("arrlist["+j+"] = " + var);
}
// 어레이리스트 모두 출력하기 : foreach문
for (Integer in : arrlist) {
System.out.println(in);
}
2. 원하는 위치에 데이터 추가하기
add(index, data);
Integer num = new Integer(123);
// 0,1번지 사이에 넣기
arrlist.add(1, num);
System.out.println("1번지에 데이터 추가 : ");
for (int j = 0; j < arrlist.size(); j++) {
Integer var = arrlist.get(j);
System.out.println("arrlist["+j+"] = " + var);
}
3. 삭제
remove(index);
arrlist.remove(2);
System.out.println("기존 2번지 삭제 : ");
for (int j = 0; j < arrlist.size(); j++) {
Integer var = arrlist.get(j);
System.out.println("arrlist["+j+"] = " + var);
}
2. remove(Object);
검색
// 1. 인덱스로 찾기
// 2. Object로 찾기
// indexOf(Object o) : o값을 리스트목록에서 찾고 제일 첫 데이터의 인덱스를 출력한다.
// 축약적인 방법
int findIndex = arrlist.indexOf(333);
System.out.println("findIndex : " + findIndex);
// 일반 클래스는 이 방법으로 사용
findIndex = -1;
for (int j = 0; j < arrlist.size(); j++) {
Integer var = arrlist.get(j);
if(var == 123) {
findIndex = i;
break;
}
}
System.out.println("findIndex" + findIndex);
수정
// set(index , data) : 새로운 데이터를 해당 인덱스의 공간에 대입한다.
Integer updateData = new Integer(555);
arrlist.set(2, updateData);
* 다수의 데이터를 담아올 때
// 1. 개수를 카운트 한다. (for)
// 2. 배열을 동적할당 한다
// 3. 찾으면서 데이터를 넣어준다 (for)
또는, 리스트로 동적할당한다.
ArrayList findDataList = new ArrayList();
for (int j = 0; j < memlist.size(); j++) {
MemberDTO d = memlist.get(j);
if(d.getName().equals("김영숙")) {
// 리스트에 찾은 데이터를 넣어준다.
findDataList.add(d);
}
}
for (int j = 0; j < findDataList.size(); j++) {
System.out.println(findDataList.get(i));
}
}
}
'Language > Java_basic' 카테고리의 다른 글
Java Basic : day 10 - Example02: 학생성적관리 ArrayList로 작성 (0) | 2019.11.29 |
---|---|
Java Basic : day 10 - Example01: 회원관리 ArrayList로 작성 (0) | 2019.11.29 |
Java Basic : day 10 - 제네릭 Generic (0) | 2019.11.29 |
Java Basic : day 9 - Example : 회원관리DAO (회원정보 입출력 / 파일저장,읽기) (0) | 2019.11.29 |
Java Basic : day 9 - Final (0) | 2019.11.29 |