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조 초코딩과 그옆자리
사이트의 정보
코딩하렴
으렴