조회 수 28770 댓글 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 Android adb shell monkey - Monkey 사용하기 2014.07.30 27204 0
370 Android Android Log (logcat) 보기 2012.06.08 27082 0
369 일반 LDAP Query 기본 2014.02.19 26742 0
368 일반 Visul Studio 2013 유용한 단축키 2014.03.01 26436 0
367 Pi 포토커플러 Photo Coupler 특징, 종류, 출력, 구조, 동작 원리, 파라미터 2019.01.03 26284 0
366 LINUX 서버간 폴더 또는 파일을 이동 하는 scp 명령어 2012.06.27 26092 0
365 JAVA [Java] 자바에서 콜백(Callback) 구현하기 2017.03.15 26015 0
364 C Base64 로 encoding / decoding 하는 예제 file 2005.09.22 25936 0
363 Python Image 기반 Steganography 예제 1 2019.07.17 25427 0
362 PHP PHP 문자열 다루기 2015.06.30 24837 0
361 JAVA jsoup - 자바를 위한 BeautifulSoup (HTML parser) 2013.08.13 24816 0
360 개념 UICC와 USIM file 2012.07.13 24663 0
359 개념 CSFB와 SVLTE (Circuit Switched Fall-Back & Simultaneous Voice and LTE) 2012.04.23 24315 0
358 일반 아마존 '알렉사 Alexa' 명령어 모음 2017.08.04 24115 0
357 Android Android DB 생성 및 관리 ( Cursor , Query ) 2015.03.03 23907 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