ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • ArrayList
    Back end/Java 객체지향 2023. 11. 22. 12:20
    /* 1. ArrayList 클래스를 java.util 패키지에서 import 하시오. */
     import java.util.ArrayList;

    public class ArrayListTest {
      public static void main(String[] args) {
        /* 2. String을 담을 수 있는 리스트 객체를 만드시오. */
        ArrayList<String>names =new ArrayList<String>();  
        
        /* 3. 리스트에 이름을 추가하시오. */
        names.add("kim");
        names.add("lee");
        names.add("Park");
        names.add("Choi");
        names.add("Hong");
        names.add("No");

        
        /* 4. 반복문을 통해 모든 이름을 출력하시오. */
         for (int i = 0; i < names.size(); i++) {
          System.out.printf ("names.get(%d) -> %s\n", i, names.get(i));      
        
          //  System.out.printf ("names.get(%d) -> %s\n", 0, names.get(0));
          //  S System.out.printf ("names.get(%d) -> %s\n", 1, names.get(1));
          // System.out.printf ("names.get(%d) -> %s\n", 2, names.get(2));
          // System.out.printf ("names.get(%d) -> %s\n", 3, names.get(3));
          // System.out.printf ("names.get(%d) -> %s\n", 4, names.get(4));
          // System.out.printf ("names.get(%d) -> %s\n", 5, names.get(5));
       // }
        }
      }
    }

     

     

    import java.util.ArrayList;

    public class BookTest {
      public static void main(String[] args) {
        /* 1. Book을 담기 위한 ArrayList 객체를 만드시오. */
        ArrayList<Book> list = new ArrayList<Book>();
        
        /* 2. Book 객체를 생성하시오. */
        Book onePiece = new Book("원피스", 4500);
        Book naruto = new Book("나루토", 4000);
        Book java = new Book("자바 프로그래밍", 24000);
        
        /* 3. ArrayList 객체에 Book 객체들을 담으시오. */
        list.add(onePiece); // 원피스 객체 담기
        list.add(naruto);   // 나루토 객체 담기
        list.add(java);     // 자바 객체 담기
        
        /* 4. 리스트에 담긴 모든 책 정보 출력 */
           for (int i = 0; i < list.size(); i++) {
           Book book = list.get(i);
           System.out.printf ("list.get(%d) -> %s\n", i, book);
           
           // 같음 
         // System.out.printf ("list.get(%d) -> %s\n", i, list.get(i));

        
        //  System.out.printf ("list.get(%d) -> %s\n", 0, list.get(0));
        // System.out.printf ("list.get(%d) -> %s\n", 1, list.get(1));
        //  System.out.printf ("list.get(%d) -> %s\n", 2, list.get(2));

         } 
         
     

       
      }
    }

    class Book {
      // 필드
      private String title;
      private int price;

      // 생성자
      public Book(String title, int price) {
        this.title = title;
        this.price = price;
      }

      // 메소드
      public String toString() {
        return String.format("Book { name: %s, price: %d }", title, price);
      }
    }

     

    - list.set

    import java.util.ArrayList;

    public class MonsterTest {
      public static void main(String[] args) {
        // Monster 객체를 저장할 ArrayList 생성
        ArrayList<Monster> list = new ArrayList<Monster>();
        
        // Monster 객체 생성
        Monster slime = new Monster("슬라임", 1);
        Monster orc = new Monster("오크", 3);
        Monster golem = new Monster("골렘", 8);
        
        // ArrayList에 객체 담기
        list.add(slime);
        list.add(orc);
        list.add(golem);
        
        // 전체 출력
        System.out.println("=== 변경 전 ===");
        for (int i = 0; i < list.size(); i++) {
          Monster m = list.get(i); // i번째 요소 반환
          System.out.println(m.toString());
        }
        
        /* 1. 레벨 1의 토끼 객체를 생성하세요. */
        Monster rabbit = new Monster("토끼",1);
        
        /* 2. ArrayList의 첫 요소인 슬라임을 토끼로 변경하세요. */
        list.set(0, rabbit);
        
        // 전체 출력
        System.out.println("=== 변경 후 ===");
        for (int i = 0; i < list.size(); i++) {
          Monster m = list.get(i); // i번째 요소 반환
          System.out.println(m.toString());
        }
      }
    }

    class Monster {
      // 필드
      private String name;
      private int level;
      
      // 생성자
      public Monster(String name, int level) {
        this.name = name;
        this.level = level;
      }
      
      // 메소드
      public String toString() {
        return String.format("Monster { name: %s, level: %d }", name, level);
      }
    }
    출력
    === 변경 전 ===
    Monster { name: 슬라임, level: 1 }
    Monster { name: 오크, level: 3 }
    Monster { name: 골렘, level: 8 }
    === 변경 후 ===
    Monster { name: 토끼, level: 1 }
    Monster { name: 오크, level: 3 }
    Monster { name: 골렘, level: 8 }

     

     

     

    import java.util.ArrayList;

    public class RamenTest {
      public static void main(String[] args) {
        // Ramen 객체를 담기 위한 ArrayList 생성
        ArrayList<Ramen> list = new ArrayList<Ramen>();
        
        // Ramen 객체 생성
        Ramen shin = new Ramen("신라면", 800);
        Ramen jin = new Ramen("진라면", 700);
        Ramen bibim = new Ramen("비빔면", 600);
        
        /* 1. Ramen 객체를 ArrayList에 담으세요. */
        list.add(shin);  // 신라면
        list.add(jin);   // 진라면
        list.add(bibim); // 비빔면
        
        /* 2. ArrayList에 담긴 모든 객체 정보를 출력하세요. */
        for (int i = 0; i < list.size(); i++) {
          Ramen ramen = list.get(i); // i 번째 요소 가져오기
          Systehttp://m.out.printf("%s\n", ramen.toString());
        }
        
        /* 3. ArrayList에 담겨진 객체의 총합을 계산하세요. */
        int sum = 0;
        for (int i = 0; i < list.size(); i++) {
          Ramen ramen = list.get(i); // i 번째 요소 가져오기
          sum += ramen.getPrice(); // 라면 가격을 누적하여 더하기
        }
        
        // 총합 출력
        System.out.println("=========================");
        Systehttp://m.out.printf("합계 : %d원\n", sum);
      }
    }

    class Ramen {
      // 필드
      private String name;
      private int price;
      
      // 생성자
      public Ramen(String name, int price) {
        this.name = name;
        this.price = price;
      }
      
      // 메소드
      public String toString() {
        return String.format("Ramen { name: %s, price: %d }", name, price);
      }

      /*4. price에 대한 게터를 작성하세요. */
      public int getPrice(){
        return this.price;
      }
    }

     

    Ramen { name: 신라면, price: 800 }
    Ramen { name: 진라면, price: 700 }
    Ramen { name: 비빔면, price: 600 }
    =========================
    합계 : 2100원

     

     

    - 로또 번호 출력 ( 자바 API 이용)

    import java.util.Collections;
    import java.util.Arrays;
    import java.util.ArrayList;

    public class SimpleLottoMachine {
      public static void main(String[] args) {
        // 45개의 공을 만든다
         ArrayList<Integer> numbers= new ArrayList<Integer>();
         for(int i =1; i <= 45; i++){
           numbers.add(i); // 1 ~ 45
         }
         
        // 섞는다
        Collections.shuffle(numbers);
        
        // 뽑는다
        int[] picked = new int[6]; 
        for(int i = 0; i < 6; i++){ // numbers의 앞 6개 숫자를 가져옴 
          picked[i] = numbers.get(i);
        }
        
        // 결과 출력
        Systehttp://m.out.printf("자동 생성 번호: %s", Arrays.toString(picked));

      }
    }

     

    출저: 홍팍 (https://www.youtube.com/@hongpark)

    이 블로그 기록은 개인 공부용 기록입니다.

Designed by Tistory.