조회 수 28783 댓글 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
번호 분류 제목 날짜 조회 수 추천 수
371 PHP GD 및 이미지 함수 정리 2014.07.09 12753 0
370 Android gdb commands 2015.03.11 7670 0
369 LINUX gdb 쓸때 상용구 secret 2019.06.26 0 0
368 Android Gerrit 검색 쿼리 도움말 2012.04.30 18527 0
367 Android git archive 를 사용해서 폴더를 .git 제외하고 tar 나 zip 으로 묶기 1 2019.02.10 7187 0
366 Android git log 옵션들 2015.01.09 29249 0
365 Android git 기초 - 원격 저장소 만들고 로그인하기, 소스 되돌리기 2016.10.29 11236 0
364 Android Git 사용자 설명서 2012.04.24 16046 0
363 Android Git 특정 commit 상태로 되돌리고 SHA1 값 알아내기 2015.05.13 6201 0
362 Python Google Colab에서 파일 업로드/다운로드 팁 2019.03.06 36535 0
361 업무 H&A본부 교육 중 IoT / 로봇 관련 내용 secret 2016.08.29 0 0
360 C# Hashtable 정렬하기 2012.12.11 15846 0
359 PHP Header for XML content in PHP file 2014.06.02 11342 0
358 개념 HLS(HTTP Live streaming) 2012.02.01 32913 0
357 Android How to create OMA DRM v1.0 content 2012.05.24 13224 0
목록
Board Pagination ‹ Prev 1 ... 5 6 7 8 9 10 11 12 13 14 ... 34 Next ›
/ 34

나눔글꼴 설치 안내


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

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

설치 취소

Designed by sketchbooks.co.kr / sketchbook5 board skin

Sketchbook5, 스케치북5

Sketchbook5, 스케치북5

Sketchbook5, 스케치북5

Sketchbook5, 스케치북5