JAVA에서의 LinkedList 설명과 사용법 그리고 함수
by 으렴일단 메인에 Linked List를 다 때려 박는다.
public static void main(String[] args) throws InterruptedException {
LinkedList<Integer> link1 = new LinkedList<Integer>();
LinkedList<Integer> link2 = new LinkedList<Integer>();
LinkedList<Integer> link3 = new LinkedList<Integer>();
LinkedList<Integer> link4 = new LinkedList<Integer>();
LinkedList<Integer> link5 = new LinkedList<Integer>();
for(int i = 0 ; i < 10 ; i++) {
link1.add(i*10);
}
}
for문 돌려서 link1에다가 넣어봄
System.out.println("link1 print : " + link1);
System.out.println("link1 size : " + link1.size());
//link1 print : [0, 10, 20, 30, 40, 50, 60, 70, 80, 90]
//10
요래 나와유
link1에 값을 넣은그져
자 그럼 값을 복사한다.
link2.addAll(link1);
System.out.println("link2 print : " + link1);
//link2 print : [0, 10, 20, 30, 40, 50, 60, 70, 80, 90]
그럼 값이 요로코롬 나온다.
자 그럼 link3에 포문을 돌려본다.
for(int i = 0 ; i < 5 ; i++)
link3.add(i);
link3.addAll(3, link2); //원하는 위치부터 link2를 복사해서 추가한다.
link3.addFirst(100); //link3의 제일 처음에 추가
link3.addLast(1000); //link3의 제일 마지막에 추가
System.out.println("link3 print : " + link3);
//link3 print : [100, 0, 1, 2, 0, 10, 20, 30, 40, 50, 60, 70, 80, 90, 3, 4, 1000]
내가 원한 인덱스에 맨처음은 100, 맨뒤는 1000이 들어간 것을 확인 할 수 있다.
link4.addAll(link1); //복사해서 더함
System.out.println("link4 print : " + link4);
link4.clear(); // link4를 모두 지움
System.out.println("link4 print : " + link4);
//link4 print : [0, 10, 20, 30, 40, 50, 60, 70, 80, 90]
//link4 print : []
리스트 클리어를 하게 되면 모두 지워진 것을 확인 할 수 있다.
System.out.println("link4 print : " + link4);
link4.clone(); //링크드 리스트 객체의 단순 복사본을 반환
link4.contains(link2); //리스트 안에 있는 데이터중 찾고자 하는 값이 존재하는지 확인 할 수 있는 함수
//인자로 object를 넘기면 boolean을 리턴
// link4.element()는 제일 처음 반환 header
System.out.println("link4 print : " + link4.element());
// link4.equals(link3) -> link3과 link4의 데이터가 같다면 true 다르면 false
System.out.println("link4 print : " + link4.equals(link5));
// link4의 5번째 있는 요소를 반환
System.out.println("link4 print : " + link4.get(5));
// link4가 비었으면 true, 비어있지 않으면 false
System.out.println("link4 print : " + link4.isEmpty());
// link4 print : [0, 10, 20, 30, 40, 50, 60, 70, 80, 90]
// link4 print : 0
// link4 print : false
// link4 print : 50
// link4 print : false
여기서 중요한 것은 clone과 contains!
contains는 굉장히 많이 사용되니 외워라
link4.remove(5);
System.out.println("link4 print : " + link4);
link4.remove();// 그냥 remove()를 사용하면 맨 처음에 있는 데이터를 제거함
System.out.println("link4 print : " + link4);
link4.removeAll(link4); // link4에 있는 모든 데이터 제거
System.out.println("link4 print : " + link4);
//link4 print : [0, 10, 20, 30, 40, 60, 70, 80, 90]
//link4 print : [10, 20, 30, 40, 60, 70, 80, 90]
//link4 print : []
삭제와 관련된 요소덜
link4.addAll(link1);
// link4의 첫번째 요소 제거
link4.removeFirst();
System.out.println("link4 print : " + link4);
link4.removeFirstOccurrence(link1); //뭐죠?
// link4의 마지막 요소 제거
link4.removeLast();
System.out.println("link4 print : " + link4);
// link4의 2번째 요소를 50으로 설정한다.
link4.set(2, 50);
System.out.println("link4 print : " + link4);
//link4 print : [10, 20, 30, 40, 50, 60, 70, 80, 90]
//link4 print : [10, 20, 30, 40, 50, 60, 70, 80]
//link4 print : [10, 20, 50, 40, 50, 60, 70, 80]
수정 등
link3.sort(null);
System.out.println("link3 print : " + link3);
// link4에 있는 요소와 link3과 중복되는 요소들만 출력한다. 중복제거
link3.retainAll(link4);
System.out.println("link4 print : " + link4);
System.out.println("link3 print : " + link3);
// 맨앞 요소에 20 삽입, push
link4.push(20);
System.out.println("link4 print : " + link4);
//link3 print : [0, 0, 1, 2, 3, 4, 10, 20, 30, 40, 50, 60, 70, 80, 90, 100, 1000]
//link4 print : [10, 20, 50, 40, 50, 60, 70, 80]
//link3 print : [10, 20, 40, 50, 60, 70, 80]
//link4 print : [20, 10, 20, 50, 40, 50, 60, 70, 80]
아 귀찮아죽겠네
// 맨 앞 요소 빼냄, pop
link4.pop();
System.out.println("link4 print : " + link4);
// link3 의 요소들 출력
System.out.println(link3.toString());
System.out.println("link3 print : " + link3);
// link3의 요수 중 2부터 4까지 추출해서 출력(즉, 0부터5까지 출력);
System.out.println(link3.subList(0, 6));
System.out.println("link3 print : " + link3);
// link3의 첫 요소 가져옴
System.out.println(link3.peek());
System.out.println("link3 print : " + link3);
//link4 print : [10, 20, 50, 40, 50, 60, 70, 80]
//[10, 20, 40, 50, 60, 70, 80]
//link3 print : [10, 20, 40, 50, 60, 70, 80]
//[10, 20, 40, 50, 60, 70]
//link3 print : [10, 20, 40, 50, 60, 70, 80]
//10
//link3 print : [10, 20, 40, 50, 60, 70, 80]
ㄹㅇ
// link3의 첫 요소 가져옴, 리스트가 비어있으면 null 반환
System.out.println(link3.peekFirst());
System.out.println("link3 print : " + link3);
// link3의 첫 요소를 가져 온 후 삭제함
System.out.println(link3.poll());
System.out.println("link3 print : " + link3);
// link3의 첫 요소를 가져 온 후 삭제함, 리스트 비어있으면 null 반환
System.out.println(link3.pollFirst());
System.out.println("link3 print : " + link3);
//10
//link3 print : [10, 20, 40, 50, 60, 70, 80]
//10
//link3 print : [20, 40, 50, 60, 70, 80]
//20
//link3 print : [40, 50, 60, 70, 80]
나중에 고쳐야디
// link3의 마지막 요소를 가져 온 후 삭제함, 리스트 비어있으면 null 반환
System.out.println(link3.pollLast());
System.out.println("link3 print : " + link3);
// link3 맨 마지막에 요소 추가
link3.offer(100);
System.out.println("link3 print : " + link3);
// link3 맨 마지막에 요소 추가
link3.offerLast(500);
System.out.println("link3 print : " + link3);
// link3 맨 앞에 요소 추가
link3.offerFirst(200);
System.out.println("link3 print : " + link3);
//80
//link3 print : [40, 50, 60, 70]
//link3 print : [40, 50, 60, 70, 100]
//link3 print : [40, 50, 60, 70, 100, 500]
//link3 print : [200, 40, 50, 60, 70, 100, 500]
도움을 주신 분 : 5조 초코딩과 그옆자리
'Programming Language > JAVA' 카테고리의 다른 글
cmd에서 java run시키깅 (0) | 2019.07.24 |
---|---|
JAVA 객체에 있는 변수를 기준으로 정렬하기 (0) | 2019.07.23 |
Stack Unwinding 스택풀기 :: 스레드 반복, 람다식 등 활용 (0) | 2019.07.18 |
Lambda Expressions 람다식의 활용 - 껍데기 (0) | 2019.07.18 |
이너클래스에서 아우터클래스 Field 부르기 (0) | 2019.07.18 |
사이트의 정보
코딩하렴
으렴