조회 수 28750 댓글 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
번호 분류 제목 날짜 조회 수 추천 수
386 Pi 아두이노 레오나르도 보드 기본 사용법 2016.11.22 11649 0
385 Pi ARDUINO multi function shield 핀정보 및 FND 소스 2016.11.21 7561 0
384 Pi 시프트 레지스터 사용방법 (Shift Register, 74HC595, 74HC165) 2016.11.21 31489 0
383 Pi 커패시터 용량, 오차 및 정격전압 판별법 (Capacitor Code) file 2016.11.21 15723 0
382 Pi Simple DAC - PWM을 Voltage로 변환하는 회로 file 2016.11.21 7475 0
381 일반 18650 리튬이온 배터리 2016.11.15 22713 0
380 Pi 아두이노 (Arduino) 소개 및 유형별 종류, 제품별 특징 2016.11.15 6981 0
379 Pi 부품 구매 2016.11.15 5975 0
378 Android git 기초 - 원격 저장소 만들고 로그인하기, 소스 되돌리기 2016.10.29 11207 0
377 Pi [Arduino] millis() 함수로 시간 재기 2016.10.25 9689 0
376 Pi [Arduino] Timer 라이브러리 사용하기 2016.10.25 14007 0
375 일반 나사 규격 2016.10.19 20560 0
374 Pi [Arduino] 아두이노 나노 Arduino Nano Spec 1 file 2016.09.07 20036 0
373 업무 마이크로 버블 Micro Bubble 이란 2016.08.29 9306 0
372 업무 전자저널 이용안내 secret 2016.08.29 0 0
목록
Board Pagination ‹ Prev 1 ... 4 5 6 7 8 9 10 11 12 13 ... 34 Next ›
/ 34

나눔글꼴 설치 안내


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

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

설치 취소

Designed by sketchbooks.co.kr / sketchbook5 board skin

Sketchbook5, 스케치북5

Sketchbook5, 스케치북5

Sketchbook5, 스케치북5

Sketchbook5, 스케치북5