조회 수 30568 댓글 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
번호 분류 제목 날짜 조회 수 추천 수
360 LINUX 리눅스 그룹관리 (groupadd, groupmod, groupdel) 2016.02.23 10099 0
359 LINUX 삼바(SAMBA)를 이용한 윈도우 접근 가능 공유폴더 만들기 2016.02.23 19683 0
» JAVA 자바 리스트(List,ArrayList) 이용하는 방법 2016.02.22 30568 0
357 LINUX iptables 명령어 - 방화벽 설정 2016.02.01 14633 0
356 Python pygoogle 파이썬으로 구글 검색결과 가져오기 library 2016.01.20 11591 0
355 Python pyBest 소스 secret 2016.01.20 0 0
354 Android 실시간으로 폰의 pcap 보기 2016.01.05 9201 0
353 C# string array를 string으로 변환 2016.01.05 20040 0
352 C# C#에서 명령줄 인수(command line argument) 사용하기 2016.01.04 14447 0
351 일반 NirCmd 사용법 2015.12.08 9562 0
350 C# Best way to implement keyboard shortcuts in a Windows Forms application 2015.11.06 8725 0
349 Android 원격 linux 서버에서 local device로 adb 접속하기 secret 2015.11.05 1 0
348 일반 [HTML] 복사해서 사용가능한 5개의 실용적인 List Style 예제 2015.11.03 8857 0
347 PHP php 배열 사용하기 2015.10.28 13939 0
346 JAVA 자바 프로그래머가 알아야할 10가지 이클립스 단축키 1 2015.10.27 9338 0
목록
Board Pagination ‹ Prev 1 ... 6 7 8 9 10 11 12 13 14 15 ... 34 Next ›
/ 34

나눔글꼴 설치 안내


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

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

설치 취소

Designed by sketchbooks.co.kr / sketchbook5 board skin

Sketchbook5, 스케치북5

Sketchbook5, 스케치북5

Sketchbook5, 스케치북5

Sketchbook5, 스케치북5