⚡ LinkedList 클래스 배열
package oop; import java.util.Arrays; import java.util.LinkedList; //LinkedList 클래스 배열 public class web5 { public static void main(String[] args) { Integer a[] = {1,3,5,7,9}; //원시배열 //클래스 배열 선언 LinkedList<Integer> ls = new LinkedList<Integer>(Arrays.asList(a)); LinkedList<Integer> ls2 = new LinkedList<Integer>(); ls2.add(10); ls2.add(20); ls2.add(30); //ArrayList에서도 가능 ls2.add(2,50); ls2.remove(0); ls2.set(1, 500); //해당 배열 번호에 데이터를 수정,변경시 //ArrayList에서 불가능 ls2.push(100); //배열의 맨 앞에 값 넣기 Integer aa = ls2.pop(); //배열의 0번째 값 출력후 배열에서 삭제 Integer bb = ls2.peek(); //배열의 0번째 값 출력후 배열에 값 그대로 보관 } }
❗ ArrayList(순서를 유지하는 배열 형태),LinkedList(순방향 또는 역방향 검색) => List(부모 라이브러리)
❗ ArrayList는 없고 LinkedList에는 있는것
ls2.push(100); //배열의 맨 앞에 값 넣기
Integer aa = ls2.pop(); //배열의 0번째 값 출력후 배열에서 삭제
Integer bb = ls2.peek(); //배열의 0번째 값 출력후 배열에 값 그대로 보관
❗ ArrayList와 LinkedList의 데이터 속도 처리차이
- ArrayList : 순차적으로 데이터를 읽기 또는 쓰기 할경우 빠름
- LinkedList : 이미 데이터가 있는 상황에서 추가로 데이터를 중간에 삽입할 경우 빠름
⚡ LinkedList로 원시배열 가공하기
package oop; import java.util.Arrays; import java.util.LinkedList; import java.util.Scanner; //LinkedList로 원시배열 가공하기 public class web7 { public static void main(String[] args) { web7_box wb7 = new web7_box(); //즉시실행 } } class web7_box { Scanner sc = new Scanner(System.in); public web7_box() { //즉시실행 this.abc();//abc메소드 호출 } public void abc() { //응용문제 /* 사용자가 금액을 입력합니다. 단, 문자로 0을 입력시 반복문은 종료됩니다. 그 외의 입력되는 사항은 linkedList배열에 모두 기록되어야 합니다. [결과] " 금액을 입력하세요 : 5000" " 금액을 입력하세요 : 6000" " 금액을 입력하세요 : 15000" " 금액을 입력하세요 : 0 " => 입력된 금액의 총 리스트 출력 [5000,6000,15000] */ LinkedList<String> ls = new LinkedList<String>(); int f; for(f=0; ; f++) { System.out.println("금액을 입력하세요 : "); int answer = this.sc.nextInt(); if(answer == 0) { break; }else { String answer_s = String.valueOf(answer); ls.add(answer_s); //ls.addFirst(answer_s); //node번호 첫번째에 삽입 //ls.addLast(answer_s); //node번호 마지막에 삽입 } } System.out.println(ls); this.sc.close(); System.exit(0); //프로세스 완져니 종료 } }
⚡ 상품별로 배열 변경 후 상품 검색(Scanner)
//{쿠첸,4인용,199500},{},{}.. 요렇게 출력후 상품 검색 package oop; import java.util.ArrayList; import java.util.Arrays; import java.util.LinkedList; import java.util.Scanner; public class web7 { public static void main(String[] args) { web7_box wb7 = new web7_box(); //즉시실행 } } class web7_box { String product[][] = null; Scanner sc = new Scanner(System.in); public web7_box() { //즉시실행 this.product = new String[][]{ {"쿠첸 브레인 IH 전기압력밥솥","누벨르 디지털 미니 전기밥솥","제니퍼룸 마카롱 전기밥솥 화이트","쿠쿠 트윈프레셔밥솥"}, {"4인용","3~4인용","3인용","1~2인용"}, {"199500","31650","357910","283000"} }; this.bbb(); } public void bbb() { //안에 ArrayList가 들어가기때문에 이건 에러 //LinkedList<LinkedList<String>> ls = new LinkedList<LinkedList<String>>(); LinkedList<ArrayList<String>> ls = new LinkedList<ArrayList<String>>(); int f,ff; for(f=0; f<this.product[0].length; f++) { //4 ArrayList<String> prd1 = new ArrayList<String>(); //1차 for(ff=0; ff<this.product.length; ff++) { //3 prd1.add(this.product[ff][f]); } ls.add(prd1); } //{쿠첸,4인용,199500},{},{}.. 이렇게 변경 완료 System.out.println("상품명을 검색 하세요 : "); String search = this.sc.nextLine(); int w=0; String msg = ""; while(w<ls.size()) { //class배열은 length 아니고 size(); //텍스트 일치여부 확인 indexOf(변수에 담아야함) //텍스트 한글자라도 포함되는 상품 모두 출력됨 int chk = ls.get(w).get(0).indexOf(search); if(chk >= 0) { //일치하는게 하나도 없다면 -1이 뜨므로 >=0 System.out.println(ls.get(w).get(0) +"가격 : "+ ls.get(w).get(2)); }else { System.out.println("해당상품은 없습니다요"); break; } w++; } System.out.printf(msg); this.sc.close(); } }
'CLASS > JAVA' 카테고리의 다른 글
#8 / remind1 (0) | 2024.05.10 |
---|---|
#7-4 / foreach,List배열 (0) | 2024.05.09 |
#7-2 / getter,setter (0) | 2024.05.09 |
#7-1 / 주의 (0) | 2024.05.09 |
#6-3 / 2차 class 배열 (0) | 2024.05.08 |