조회 수 29251 댓글 0
?

단축키

Prev이전 문서

Next다음 문서

+ - Up Down Comment Print
?

단축키

Prev이전 문서

Next다음 문서

+ - Up Down Comment Print

출처 : http://www.devblog.kr/r/8y0gFPAvJ2j8MWIVVXucyP9uYvQegfSVbY5XNCuo7



이번에는 자바 리스트 클래스들에 대해 알아 보겠습니다리스트는 배열의 한계 때문에 만들어진 자료형 입니다배열을 사용하기 위해서는 크기를 정해야 합니다그런데 프로그래밍 중 크기를 알 수 없는 경우가 더 많죠. List는 메모리가 허용하는 한 계속 해서 추가 할 수 있도록 만든 자료형 클래스 입니다.

 

▼ java.util.List 는 인터페이스 클래스이며 java.util.Collection 인터페이스를 구현한 것입니다. List 를 사용하기 위해서는 아래 클래스들중 하나로 인스턴스화 할수 있습니다.

 

1
2
3
4
5
6
7
8
9
10
import java.util.ArrayList;
import java.util.LinkedList;
import java.util.List;
import java.util.Stack;
import java.util.Vector;
 
List listA = new ArrayList();
List listB = new LinkedList();
List listC = new Vector();
List listD = new Stack();

 

값 추가하고 꺼내는 방법 – add, get

 

▼ 이번에는 값들을 추가하고 인덱스에 해당하는 값을 하나씩 가져오거나 모든 데이터를 꺼내는 방법입니다값을 추가하기 위해서 add() 함수를 사용합니다아래 그림처럼 텍스트값 3개를 추가했습니다그리고 제일 아래에 있는 add() 함수는 형태가 좀 틀리죠첫번째 인수로 요소값을 넣었습니다요소값을 넣고 데이터를 추가하게 되면 해당 요소에 값을 교체하는 것이 아니라 추가하고 데이터들이 하나씩 밀리게 됩니다아래 그림을 참고 하시기 바랍니다.

 

1
2
3
4
5
6
7
List listA = new ArrayList();
 
listA.add("김삿갓");
listA.add("홍아리");
listA.add(new String("홍길동"));
 
listA.add(1, "1번째 요소값");

 

 

 

▼ 인덱스로 값을 조회하고 싶다면 get(index) 함수를 사용하면 됩니다하나씩 조회하고 싶을 때 사용하는 방법이고 모든 데이터를 전부 출력하고 싶다면 Iterator  For loop문을 이용합니다. List 클래스의 iterator() 함수로 Iterator 객체를 리턴받아 사용합니다. 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
// 인덱스를 통한 조회
String element0 = listA.get(0).toString();
String element1 = listA.get(1).toString();
String element3 = listA.get(2).toString();
 
//Iterator 통한 전체 조회
Iterator iterator = listA.iterator();
while (iterator.hasNext()) {
    String element = (String) iterator.next();
     
}
 
//for-loop 통한 전체 조회
for(Object object : listA) {
    String element = (String) object;
}

 

값 삭제하는 방법 - remove

 

▼ 객체를 삭제하는 방법은 두가지가 있습니다인덱스를 이용하는 방법과 동일한 오브젝트를 인수로 넘기면 검색해서 삭제시켜 줍니다오브젝트를 이용해서 삭제하게 되면 삭제 결과가 성공인지 실패인지만 알려주고 인덱스로 삭제하게 되면 어떤 데이터를 삭제했는지 리턴값으로 알려줍니다.

 

◎ remove(Object element)

◎ remove(int index)

 

1
2
3
4
5
6
System.out.println(listA.remove(0));
System.out.println(listA.remove("홍길동"));
 
// 결과
김삿갓
true

 

값이 있는지 확인하는 방법 - contains

 

▼ 리스트안에 있는 데이터중 찾고자 하는 값이 존재하는지 확인할수 있는 함수가 contains입니다함수 인수로 오브젝트를 넘기게 되면 boolean 값을 리턴하게 됩니다아래 결과값은true 가 되겠죠.

 

1
2
3
4
System.out.println(listA.contains("홍길동"));
 
// 결과
true

 

해당 위치 앞에 값을 집어 넣고 싶을 때

 

▼ 위에서 값을 추가할 때 add() 함수의 첫번째 인수로 인덱스를 넘기게 되면 해당 위치 앞에 값이 추가 된다고 했습니다위치를 알고 있을때는 지정하면 되는데 알수 없을때는 어떻게 할까요? indexof() 함수를 이용해서 위치값을 찾은 뒤 add() 함수를 이용하시면 되겠죠 

전체 소스

 

아래 소스는 위에서 테스트한 전체 내용입니다참고하시기 바랍니다.

 

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
32
33
34
35
36
37
38
39
40
41
42
43
44
45
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
 
public class ListExample {
 
    public static void main(String[] args) {
        List listA = new ArrayList();
         
        listA.add("김삿갓");
        listA.add("홍아리");
        listA.add(new String("홍길동"));
         
        listA.add(1, "1번째 요소값");
         
         
        // 인덱스를 통한 조회
        String element0 = listA.get(0).toString();
        String element1 = listA.get(1).toString();
        String element3 = listA.get(2).toString();
 
        //Iterator 통한 전체 조회
        Iterator iterator = listA.iterator();
        while (iterator.hasNext()) {
            String element = (String) iterator.next();
             
        }
 
        //for-loop 통한 전체 조회
        for(Object object : listA) {
            String element = (String) object;
        }
         
// 홍길동 앞에 값 추가
        int index = listA.indexOf("홍길동");
        listA.add(index, "홍길동 앞에 값 추가");
 
        // 존재 여부 확인
        System.out.println(listA.contains("홍길동"));
         
        // 값 삭제하는 방법
        System.out.println(listA.remove(0));
        System.out.println(listA.remove("홍길동"));
    }
}


Dreamy의 코드 스크랩

내가 모으고 내가 보는

List of Articles
번호 분류 제목 날짜 조회 수 추천 수
416 일반 시스템 환경변수 세팅 2011.02.08 28727 0
415 일반 가변 인수를 가지는 함수 및 매크로 만들기 2011.02.09 35569 0
414 MFC 레지스트리 쓰기, 읽기 함수 정리 2011.07.26 31492 0
413 Android [GIT 사용법] Git Tutorial 2011.12.26 97081 0
412 일반 3D프린트 가이드 모음 2022.04.02 2817 0
411 Android [GIT 사용법] 초보자가 알아두면 좋을 명령어 정리 1 2011.12.26 67047 0
410 LINUX [Shell Script] bash에서 source 명령 2012.01.02 62443 0
409 C# 문자열 검색 / 조작 2012.01.03 23858 0
408 C# c# file i/o 샘플 2012.01.04 17304 0
407 개념 DLNA(Digital Living Network Alliance) file 2012.01.27 17507 0
406 Python C#에서 Python 파일 실행하고 결과 가져오기 2012.02.02 38495 0
405 Python Visual Studio 2005 + IronPython 연동하기 2012.02.02 16874 0
404 일반 디버깅용 string 프로그램 소스 2012.02.06 15807 0
403 개념 Android CTS(Android Compatibility Test Suite) 2012.02.15 17473 0
402 개념 DTCP-IP (Digital Transmission Content Protection over Internet Protocol) 2012.02.27 16414 0
목록
Board Pagination ‹ Prev 1 2 3 4 5 6 7 8 9 10 11 ... 34 Next ›
/ 34

나눔글꼴 설치 안내


이 PC에는 나눔글꼴이 설치되어 있지 않습니다.

이 사이트를 나눔글꼴로 보기 위해서는
나눔글꼴을 설치해야 합니다.

설치 취소

Designed by sketchbooks.co.kr / sketchbook5 board skin

Sketchbook5, 스케치북5

Sketchbook5, 스케치북5

Sketchbook5, 스케치북5

Sketchbook5, 스케치북5