본문 바로가기

JavaCode(review)

LinkedList 개념코딩

반응형

Class Customer (개념설명 이용하기위한 코딩)

package com.company;

public class Customer {
    private String name;
    private double balance;

    //constructor
    public Customer(String name, double balance) {
        this.name = name;
        this.balance = balance;
    }
    //getter
    public String getName() {
        return name;
    }

    public double getBalance() {
        return balance;
    }
    //setter

    public void setName(String name) {
        this.name = name;
    }

    public void setBalance(double balance) {
        this.balance = balance;
    }
}

ArrayList 코딩- add/  (linkedList 와 비교위한)

package com.company;

import java.util.ArrayList;

public class Main {

    public static void main(String[] args) {
	// write your code here
        Customer customer = new Customer("Tim", 54.96);   //object - call constructor
        Customer anotherCustomer;                            //second object
        anotherCustomer = customer;
        anotherCustomer.setBalance(12.18);
        System.out.println("Balance for customer" + customer.getName()+"is"+customer.getBalance());

            //결과값 : Tim is 12.18 > 동일 메모리에 두개의 object 인거니.

        //ArrayList 정의해보자 (LinkedList와 비교위해)
        ArrayList<Integer> intList = new ArrayList<>();

        intList.add(1);
        intList.add(3);
        intList.add(4);

        for(int i=0; i<intList.size(); i++ ){       //i = index
            System.out.println(i+":"+intList.get(i));
        }
        //output (index: value)
        // 0:1
        // 1: 3
        // 2: 4

        intList.add(1,2);       //index 1에 element 2넣기

        for(int i=0; i<intList.size(); i++){
            System.out.println(i+":"+intList.get(i));
        }
        //output
        // 0:1
        // 1: 3
        // 2: 4
        // 0: 1
        // 1: 2         //  >index1에 2추가되고 다른값들은 뒤로 밀림.
        // 2: 3			//모든 position이동시켜야해서 data 많은경우 process 많이 느림.
        // 3: 4



    }
}

LinkedList 개념

package com.company;

import java.util.Iterator;
import java.util.LinkedList;

public class Demo {

    //linkedList 정의해보자   (ArrayList와 달리 add,remove위해 걍 point to만 바꾸면 됨.)

    public static void main(String[] args) {
        LinkedList<String> placesToVisit = new LinkedList<String>();        //정의
        placesToVisit.add("Sydney");                                    // 값 추가
        placesToVisit.add("Melbourne");
        placesToVisit.add("Brisbane");
        placesToVisit.add("Perth");
        placesToVisit.add("Canberra");
        placesToVisit.add("Adelaide");

        printList(placesToVisit);       //method
    }
                                                              //iterator 반복문 이용해서 출력
    private static void printList(LinkedList<String> linkedList){
        Iterator<String> i =linkedList.iterator();           //linkedList의 기능 iterator 설정
        while(i.hasNext()){                                    //hasNext :  다음데이터 존재 여부
            System.out.println("Now visiting "+i.next());    //next:현재요소 + i++; 기능
        }
        System.out.println("================");
    }
}


Output

D:\IT\JDK\jdk11.0.6_10\bin\java.exe "-javaagent:D:\IT\IDEA\IntelliJ IDEA Community Edition 2020.1\lib\idea_rt.jar=49739:D:\IT\IDEA\IntelliJ IDEA Community Edition 2020.1\bin" -Dfile.encoding=UTF-8 -classpath D:\IT\NewProject\LinkedList\out\production\LinkedList com.company.Demo
Now visitingSydney
Now visitingMelbourne
Now visitingBrisbane
Now visitingPerth
Now visitingCanberra
Now visitingAdelaide
================

Process finished with exit code 0

 

 

LinkedList - add/remove 기능

package com.company;

import java.util.Iterator;
import java.util.LinkedList;

public class Demo {

    //linkedList 정의해보자   (ArrayList와 달리 add,remove위해 걍 point to만 바꾸면 됨.)

    public static void main(String[] args) {
        LinkedList<String> placesToVisit = new LinkedList<String>();        //정의
        placesToVisit.add("Sydney");                                    // 값 추가
        placesToVisit.add("Melbourne");
        placesToVisit.add("Brisbane");
        placesToVisit.add("Perth");
        placesToVisit.add("Canberra");
        placesToVisit.add("Adelaide");

        printList(placesToVisit);       //method

        placesToVisit.add(1,"Alice Springs"); // add / index 1 에 추가
        printList(placesToVisit);

        placesToVisit.remove(4);          //remove  /index 4 지우기.
        printList(placesToVisit);
    }
                                                              //iterator 반복문 이용해서 출력
    private static void printList(LinkedList<String> linkedList){
        Iterator<String> i =linkedList.iterator();           //linkedList의 기능 iterator 설정
        while(i.hasNext()){                                    //hasNext :  다음데이터 존재 여부
            System.out.println("Now visiting "+i.next());    //next:현재요소 + i++; 기능
        }
        System.out.println("================");
    }
}

//>> outPut   index 1에 값 추가되고 다음값을 차례대로 나옴.
// Sydney가 Alice Spring을 point to 하고
//Alice Spring이 Melbourne을 point to 하는 개념임.(system이 automatically)
// point to만 바꾸면 되는지라 data 많아도 process 금방 처리 됨.

//(참고로 ArrayList는 index 값 한개 한개 position을 뒤로 이동시키는 개념.)


Output

D:\IT\JDK\jdk11.0.6_10\bin\java.exe "-javaagent:D:\IT\IDEA\IntelliJ IDEA Community Edition 2020.1\lib\idea_rt.jar=49966:D:\IT\IDEA\IntelliJ IDEA Community Edition 2020.1\bin" -Dfile.encoding=UTF-8 -classpath D:\IT\NewProject\LinkedList\out\production\LinkedList com.company.Demo
Now visiting Sydney
Now visiting Melbourne
Now visiting Brisbane
Now visiting Perth
Now visiting Canberra
Now visiting Adelaide
================
Now visiting Sydney
Now visiting Alice Springs					//추가
Now visiting Melbourne
Now visiting Brisbane
Now visiting Perth
Now visiting Canberra
Now visiting Adelaide
================
Now visiting Sydney
Now visiting Alice Springs
Now visiting Melbourne				//index 4 brisbane값 지워짐
Now visiting Brisbane
Now visiting Canberra
Now visiting Adelaide
================

Process finished with exit code 0