Java/Basic

List- ArrayList

yunajoe 2022. 10. 24. 18:56

List 컬렉션 클래스
List 인터페이스를 구현한 모든 List 컬렉션 클래스는 다음과 같은 특징

 

 

1. 요소의 저장 순서가 유지됩니다.

2. 같은 요소의 중복 저장을 허용합니다. 

대표적인 List 컬렉션 클래스에 속하는 클래스는 다음과 같습니다.    

1. ArrayList<E>

2. LinkedList<E>

3. Vector<E>

4. Stack<E>

자바의 리스트 인터페이스는 ArrayList, LinkedList, Stadk, and Vector 가 있다

 

리스트 vs 배열의 차이 ?!

리스트와 배열의 가장 큰 차이는 크기가 정해져 있지 않고 동적으로 변한다는 점. 배열은 크기가 정해져 있다

public class Str {
    public static void main(String[] args) {
         // 배열(Array)
        String[] nameArray = new String[4];
        nameArray[0] = "연아";
        nameArray[1] = "연아2";
        nameArray[2] = "연아3";
        nameArray[3] = "연아4";
        for (String name : nameArray){
            System.out.println(name);
        }
    }
}

 

※ ArrayList를 사용하기 위해서는 import java.util.ArrayList와 같이 ArrayList를 먼저 import해야 한다.

 

import java.util.ArrayList;
// 문자 ArrayList
public class Str {
    public static void main(String[] args) {
         // ArrayList
        ArrayList<String> nameList = new ArrayList<>();
        nameList.add("조연아");
        nameList.add("yuna");
        nameList.add("여나당");

        nameList.remove(0); // 조연아 지우기

        System.out.println(nameList.size());
        System.out.println(nameList);


    }
}



// 정수 ArrayList
public class Str {
    public static void main(String[] args) {
         // ArrayList
        ArrayList<Integer> numList = new ArrayList<>();
        numList.add(1);
        numList.add(2);
        numList.add(3);

        for(int num: numList){
            System.out.println(num);
        }  
    }
}

======================================================

# ArrayList선언 
import java.util.ArrayList;
import java.util.Arrays;

public class Main {
    public static void main(String[] args){
        ArrayList list = new ArrayList(); //타입 미설정 Object로 선언된다
        ArrayList<Integer> num1 = new ArrayList<Integer>(); // int타입으로 설정
        ArrayList<String> str1 = new ArrayList<String>(); // String타입으로 설정
        ArrayList<Float> float1 = new ArrayList<Float>(); // Float 타입으로 설정

        ArrayList<Integer> num2 = new ArrayList<Integer>(Arrays.asList(1,2,3));
        ArrayList<String> str2 = new ArrayList<String>(Arrays.asList("yuna", "yuna2", "yuna3"));
        ArrayList<Float> float2 = new ArrayList<Float>(Arrays.asList(3.14f, 5.59f, 7.19f));  
    }
}
# ArrayList 값 추가 

public class Main {
    public static void main(String[] args){
    ArrayList<Integer> lis = new ArrayList<Integer>();
      lis.add(3);
      lis.add(null);
      lis.add(1, 10); // index1에 10 삽입
      }
  }
# ArrayList 값 삭제

public class Main {
    public static void main(String[] args){
     ArrayList<Integer> lis = new ArrayList<Integer>(Arrays.asList(1,2,3));
     lis.remove(1);
     System.out.println(lis);
     lis.clear();
     System.out.println(lis);
  }
}
# ArrayList 크기 구하기

public class Main {
    public static void main(String[] args){
    ArrayList<Integer> lis = new ArrayList<Integer>(Arrays.asList(1,2,3));
    System.out.println(lis.size());
  }
}
# ArrayList 값 출력
import java.util.ArrayList;
import java.util.Arrays;

public class Main {
    public static void main(String[] args){
    ArrayList<Integer> lis = new ArrayList<Integer>(Arrays.asList(1,2,3,4,5));
    System.out.println(lis.get(0)); // 0번쨰 인덱스 출력
    // 전체 출력
    for(Integer i :lis){
        System.out.println(i);
    }
  }
}
// 출력
1
1
2
3
4
5
# ArrayList 값 검색

1. contains(value)
=> value가 있으면 true, 없으면 false 
2.  indexOf(value) 
=> value가 있으면 그 값의 인덱스를, 없으면 -1를 반환 

public class Main {
    public static void main(String[] args){
    ArrayList<Integer> lis = new ArrayList<Integer>(Arrays.asList(1,2,3,4,5));
    System.out.println(lis.contains(1));
    System.out.println(lis.indexOf(1));


  }
}
// 출력
true
0

출처:  https://wikidocs.net/207,  https://coding-factory.tistory.com/551, https://jihyeong-ji99hy99.tistory.com/84

 

03-07 리스트 (List)

[TOC] 리스트는 배열과 비슷한 자바의 자료형으로 배열보다 편리한 기능을 많이 가지고 있다. 리스트와 배열의 가장 큰 차이는 크기가 정해져 있지 않고 동적으로 변한다 ...

wikidocs.net