배열을 이용해서
단점 :삽입, 삭제를 할때 정렬(빈공간을 매워주거나, 빈공간을 만들어주거나)할때 시간이 많이 걸린다.
장점 : GET! 가져올때 편하다.
ArrayList
ADD
package com.company;
import java.util.ArrayList;
public class Main {
public static void main(String[] args){
//어레이리스트를 만들어준다.
ArrayList<Integer> numbers = new ArrayList<>();
//add를 사용해 값을 넣어준다.
numbers.add(1);
numbers.add(4);
numbers.add(8);
numbers.add(7);
//프린트
System.out.println(numbers);
//값 낑겨넣기
numbers.add(2, 5);
//다시 프린트
System.out.println(numbers);
}
}
출력:
[1, 4, 8, 7]
[1, 4, 5, 8, 7]
numbers.add(2, 5);
인자를 받는데, 첫번쨰는 위치(*인덱스는 0부터 센다.), 두번째는, 값
=============================================
REMOVE
package com.company;
import java.util.ArrayList;
public class Main {
public static void main(String[] args){
//어레이리스트를 만들어준다.
ArrayList<Integer> numbers = new ArrayList<>();
//add를 사용해 값을 넣어준다.
numbers.add(1);
numbers.add(4);
numbers.add(8);
numbers.add(7);
//프린트
System.out.println(numbers);
//값 낑겨넣기
numbers.add(2, 5);
//다시 프린트
System.out.println(numbers);
numbers.remove(2);
System.out.println(numbers);
}
}
get.. size... 등등 사용.
=========================================
Iteration 반복 : it에 담기게 될 값은 이터레이터데이터 타입임. = 이터레이터의 데이터타입 : 인터페이스
package com.company;
import java.util.ArrayList;
import java.util.Iterator;
public class Main {
public static void main(String[] args){
ArrayList<Integer> numbers = new ArrayList<>();
numbers.add(1);
numbers.add(4);
numbers.add(8);
numbers.add(7);
//반복문 만들기?
Iterator it = numbers.iterator();
while(it.hasNext()){
int value = (int) it.next();
System.out.println(value);
}
}
}
결과:
1
4
8
7
ㄹ 코드 넣고, 왜 바로 한글이 안써지는겨 ;;
반복문인 Iterator를 내가 이해한대로 설명을 하자면,
Iterator이라는 타입을 변수 it에넣을 건데, numbers.iterator()를 이용할 거다.
numbers는 ArrayList이고, 값이 들어가 있다.
while을 사용해 만약 it가 hasNext(iterator의 메소드중 하나, 값이있으면 true, 없으면 false까지만~~~반환함)
그리고 그 값을 value에 넣을건데, it.next(이것을 이용해서 int로 받아서 while을 돌려준다(true true true true false))
*난 설명 존나 못하는거 같다. 이해안되면, 생활코딩 보시길 추천 ㅜ
package com.company;
import java.util.ArrayList;
import java.util.Iterator;
public class Main {
public static void main(String[] args){
ArrayList<Integer> numbers = new ArrayList<>();
numbers.add(1);
numbers.add(4);
numbers.add(8);
numbers.add(7);
//반복문 만들기?
for(int value:numbers){
System.out.println(value);
}
}
}
결과:
1
4
8
7
ㅇ 위에 Iterator를 사용한것보다 훨~~씬 간편하다.
for문을 사용해서 값을 가져오는것인데 사용한 세미클론 : 은 python에서 사용해봤던 in이랑 똑같은 기능이다.
설명을 덧붙이자면
만약에 저 numbers의 값들이 있으면 value(변수)로 값을 하나씩하나씩(뽑기처럼 하나씩 뽑음ㅋ) 끄집어 내는거다.그게(:)의 역할이다.
'개발공부 > 자료구조' 카테고리의 다른 글
자료구조(Linked list) 구현 (0) | 2020.12.04 |
---|---|
클래스의 인스턴스화2(Iterator 반복문) (0) | 2020.12.02 |
자료구조(클래스의 인스턴스화, Arraylist 만들어보기) (0) | 2020.11.26 |
자료구조(배열과 리스트) (0) | 2020.11.25 |
자료구조(Data Structure[feat.생활코딩]) 1 (0) | 2020.11.25 |