public static void main(String args[]) {
List<Integer> list = new ArrayList<>();
list.add(1);
list.add(2);
list.add(3);
// 방법 1
int[] arr1 = new int[list.size()]
for (int i = 0 ; i < list.size() ; i++) {
arr1[i] = list.get(i).intValue();
// 방법 2
int[] arr2 = list.stream()
.mapToInt(i -> i)
.toArray();
// 방법 3
int[] arr3 = list.stream()
.mapToInt(Integer::intValue)
.toArray();
// 방법 4
int[] arr4 = list.stream()
.filter(i -> i != null)
.mapToInt(i -> i)
.toArray();
}
※ 추가
List<String> listA = new ArrayList();
listA.add("김삿갓");
listA.add("홍아리");
listA.add(new String("홍길동"));
listA.add(1,"1번째 요소값"); => 인덱스 1에 1번째 요소값이 들어가고
!데이터들이 하나씩 밀리게 된다.!
(2) 조회
하나씩 값을 조회하고 싶으면 get(index);
데이터를 전부 출력하고 싶다면 Iterator와 for문 사용.
String element0 = listA.get(0).toString();
Iterator 전체 조회
Iterator iterator = listA.iterator();
while(iterator.hasNext()){
String element = (String) iterator.next();
}
for loop 통한 전체 조회
for(Object object: listA){
String element =(String) object;
}
(3)값 삭제
listA.remove(0);
listA.remove("홍길동");
(4)값이 있는지 확인하는 방법
listA.contains("홍길동");
true면 있음, false면 아님.
(5)해당 위치 앞에 값을 집어 넣고 싶을 때
int index= listA.indexOf("홍길동");
listA.add(index,"홍길동 앞에 값 추가");
ArrayList 크기는 동적으로 변경된다.
(1) 선언
ArrayList<integer> arrayList = new ArrayList<>();
(2) 데이터 추가
arrayList.add(0);
arrayList.add(1);
for(int i: arrayList)
{
System.out.println("값 :"+i);
}
arrayList.add(1,10) => list와 똑같이 인덱스 1에 데이터가 들어나고 뒤에 element 들은 자동으로 밀림.
(3) addAll
메소드를 통해 ArrayList에 ArrayList를 추가할 수 있다.
arrayList2 => 또 다른 arrayList 생성
arrayList.addAll(arrayList2); => arrayList에 arrayList2가 삽입.
add랑 동일하게 뒤에 삽입됨
(4) 데이터 제거
arrayList.remove(1); => 원하는 인덱스 데이터 삭제.
ArrayList는 자동으로 size가 조절된다.
(5) ArrayList로부터 특정 데이터 가져오기
List<Integer> list = arrayList.subList(1,3);
=> arrayList로부터 index 범위 1~3에 해당하는 element들을 List 형태로 반환받는다.
★범위가 1~3까지 지정이 되었지만 toIndex앞까지에 해당하는 element까지만 반환.
Index 0 1 2 3 4
arrayList(값) 1 2 3 4 5
2,3 값만 가져온다는 뜻!!(index 1~2만 가져온다)★
도형으로 생각할 시,
List<> list = new ArrayList<>();
도형 list = new 정사각형;
arrayList<> list = new ArrayList<>();
정사각형 list = new 정사각형;
정리하자면 List는 인터페이스이고 arrayList는 List에 상속된 클래스라고 보면 된다.
따라서, ★arrayList는 단독으로 사용할 수 없으며 사용시 List 인터페이스를 상속받고 사용해야 한다.