1. ๋ฌธ์ œ 

Student ํด๋ž˜์Šค๋ฅผ ์ •์˜ํ•˜๊ณ , LinkedList๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ "์ „๊ธฐ์ „์ž" ์ „๊ณต ํ•™์ƒ๋งŒ ํ•„ํ„ฐ๋งํ•˜๋Š” solution ๋ฉ”์„œ๋“œ๋ฅผ ์™„์„ฑํ•ด์•ผ ํ•˜๋Š” ๋ฌธ์ œ


import java.util.LinkedList;

public class Assignment03 {

    static class Student {
        String name;
        String major;

        public Student(String name, String major) {
            this.name = name;
            this.major = major;
        }

        public String getName() {
            return name;
        }

        public String getMajor() {
            return major;
        }

        @Override
        public String toString() {
            return "์ด๋ฆ„: " + name + ", ์ „๊ณต: " + major;
        }
    }

    public static void main(String[] args) {
        LinkedList<Student> students = new LinkedList<>();

        // ํ•™์ƒ ์ถ”๊ฐ€
        students.add(new Student("๋ฌธ00", "์ „๊ธฐ์ „์ž"));
        students.add(new Student("์ •00", "์†Œํ”„ํŠธ์›จ์–ด"));
        students.add(new Student("์ตœ00", "์ „๊ธฐ์ „์ž"));
        students.add(new Student("๊น€00", "์‚ฐ์—…๋””์ž์ธ"));
        students.add(new Student("์ž„00", "์ „๊ธฐ์ „์ž"));

        System.out.println("์ „๊ณต์ด ์ „๊ธฐ์ „์ž์ธ ํ•™์ƒ ๋ชฉ๋ก : ");
        solution(students);
    }

    public static void solution(LinkedList<Student> students) {
        // ๋ฆฌ์ŠคํŠธ๋ฅผ ์ˆœํšŒํ•˜๋ฉด์„œ ์ „๊ณต์ด "์ „๊ธฐ์ „์ž"์ธ ํ•™์ƒ์„ ์ฐพ์•„ ์ถœ๋ ฅ
        for (Student student : students) {
            if (student.getMajor().equals("์ „๊ธฐ์ „์ž")) {
                System.out.println(student);
            }
        }
    }
}

 

 

๋ฌธ์ œ ๊ฐœ์š” ๋ถ„์„ :

1. Student ํด๋ž˜์Šค :

name๊ณผ major๋ผ๋Š” ๋‘๊ฐœ์˜ ํ•„๋“œ๋ฅผ ๊ฐ€์ง„ ํด๋ž˜์Šค์ด๋‹ค.

์ƒ์„ฑ์ž์™€ getter ๋ฉ”์„œ๋“œ, toString ๋ฉ”์„œ๋“œ๊ฐ€ ์ •์˜๋˜์–ด ์žˆ๋‹ค.

์ด ํด๋ž˜์Šค๋Š” ํ•™์ƒ ๊ฐ์ฒด๋ฅผ ์ƒ์„ฑํ•˜๋Š” ์‚ฌ์šฉ๋œ๋‹ค. 

 

2. LinkedList :

์ž๋ฐ”์—์„œ ์ œ๊ณตํ•˜๋Š” List์ธํ„ฐํŽ˜์ด์Šค์˜ ๊ตฌํ˜„์ฒด ์ค‘ ํ•˜๋‚˜์ด๋‹ค.

ํ•™์ƒ ๊ฐ์ฒด๋ฅผ ์ €์žฅํ•  ์ž๋ฃŒ๊ตฌ์กฐ๋กœ ์‚ฌ์šฉ๋œ๋‹ค. 

 

LinkedList :
๋…ธ๋“œ ๊ธฐ๋ฐ˜์˜ ์ž๋ฃŒ๊ตฌ์กฐ๋กœ, ๊ฐ ๋…ธ๋“œ๊ฐ€ ๋ฐ์ดํ„ฐ์™€ ๋‹ค์Œ ๋…ธ๋“œ๋ฅผ ๊ฐ€๋ฆฌํ‚ค๋Š” ์ฐธ์กฐ๋ฅผ ๊ฐ€์ง„๋‹ค.
์‚ฝ์ž…, ์‚ญ์ œ๊ฐ€ ๋นˆ๋ฒˆํ•œ ๊ฒฝ์šฐ์— ์œ ์šฉํ•˜๋ฉฐ, ์ˆœ์ฐจ์ ์œผ๋กœ ํƒ์ƒ‰ํ•ด์•ผ ํ•  ๊ฒฝ์šฐ ์„ฑ๋Šฅ์ด ๋‚ฎ์•„์งˆ ์ˆ˜ ์žˆ๋‹ค.

 

3. solution ๋ฉ”์„œ๋“œ :

LinkedList์— ์ €์žฅ๋œ ํ•™์ƒ ๊ฐ์ฒด๋ฅผ ์ˆœํšŒํ•˜๋ฉฐ, major๊ฐ€ "์ „๊ธฐ์ „์ž"์ธ ํ•™์ƒ๋งŒ ํ•„ํ„ฐ๋ง ํ•˜์—ฌ ์ถœ๋ ฅํ•œ๋‹ค. 

 

๊ฐ์ฒด ํ•„ํ„ฐ๋ง์ด๋ž€?
์ปฌ๋ ‰์…˜์„ ์ˆœํšŒํ•˜๋ฉฐ, ๊ฐ ๊ฐ์ฒด์˜ ํŠน์ • ์กฐ๊ฑด์„ ๊ฒ€์‚ฌํ•˜์—ฌ ์›ํ•˜๋Š” ๋ฐ์ดํ„ฐ๋ฅผ ํ•„ํ„ฐ๋งํ•  ์ˆ˜ ์žˆ๋‹ค.
์กฐ๊ฑด์„ ๊ฒ€์‚ฌํ•  ๋•Œ ๊ฐ์ฒด์˜ ํ•„๋“œ๋ฅผ ์ฐธ์กฐํ•˜๊ธฐ ์œ„ํ•ด getter ๋ฉ”์„œ๋“œ๋ฅผ ์‚ฌ์šฉํ•œ๋‹ค. 

 

 


๋ฌธ์ œ ํ’€์ด

 

1. Student ํด๋ž˜์Šค

static class Student {
   String name;
   String major;
   
   public Student(String name, String major) {
       this.name = name;
       this.major = major;
   }
   
   public String getName() {
      return name;
   }
   
   public String getMajor() {
      return major;
   }
   
   @Override
   public String toString() {
      return "์ด๋ฆ„ : " + name + ", ์ „๊ณต: " + major;
   }
}

 

 

2. solution ๋ฉ”์„œ๋“œ

๋งค๊ฐœ๋ณ€์ˆ˜๋กœ ๋ฐ›์€ LinkedList๋ฅผ ์ˆœํšŒํ•œ๋‹ค.

๊ฐ ํ•™์ƒ์˜ major ํ•„๋“œ๋ฅผ ํ™•์ธํ•˜๊ณ , "์ „๊ธฐ์ „์ž"์™€ ์ผ์น˜ํ•˜๋Š” ๊ฒฝ์šฐ ์ถœ๋ ฅํ•œ๋‹ค.

 

์ˆœํšŒ๋ฐฉ๋ฒ•์€ for- each ๋ฃจํ”„๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๋ฆฌ์ŠคํŠธ์˜ ๊ฐ ์š”์†Œ์— ์ ‘๊ทผํ•œ๋‹ค.

public static void solution(LinkedList<Student> students) {
    // ๋ฆฌ์ŠคํŠธ๋ฅผ ์ˆœํšŒํ•˜๋ฉฐ ์กฐ๊ฑด์— ๋งž๋Š” ํ•™์ƒ ์ถœ๋ ฅ
    for (Student student : students) {
       if (student.getMajor().equals("์ „๊ธฐ์ „์ž")) {
           System.out.println(student);
       }
    }
}

 

 

 

3. main ๋ฉ”์„œ๋“œ

ํ•™์ƒ ๊ฐ์ฒด๋ฅผ ์ƒ์„ฑํ•˜์—ฌ LinkedList์— ์ถ”๊ฐ€ํ•œ๋‹ค.

solution๋ฉ”์„œ๋“œ๋ฅผ ํ˜ธ์ถœํ•˜์—ฌ ํ•„ํ„ฐ๋ง๋œ ํ•™์ƒ ๋ชฉ๋ก์„ ์ถœ๋ ฅํ•œ๋‹ค.

public static void main(String[] args) {
    LinkedList<Student> students = new LinkedList<>();

    // ํ•™์ƒ ์ถ”๊ฐ€
    students.add(new Student("๋ฌธ00", "์ „๊ธฐ์ „์ž"));
    students.add(new Student("์ •00", "์†Œํ”„ํŠธ์›จ์–ด"));
    students.add(new Student("์ตœ00", "์ „๊ธฐ์ „์ž"));
    students.add(new Student("๊น€00", "์‚ฐ์—…๋””์ž์ธ"));
    students.add(new Student("์ž„00", "์ „๊ธฐ์ „์ž"));

    System.out.println("์ „๊ณต์ด ์ „๊ธฐ์ „์ž์ธ ํ•™์ƒ ๋ชฉ๋ก : ");
    solution(students);
}

< ์ง€๋‚œ ๋‚˜์˜ ๊ฒŒ์‹œ๋ฌผ >

2025.01.03 - [Java/Breaking down Java code] - [Java] ArrayList vs LinkedList (์ถ”๊ฐ€/์‚ญ์ œ๋Š” Linked, ์กฐํšŒ๋Š” Array)

 

[Java] ArrayList vs LinkedList (์ถ”๊ฐ€/์‚ญ์ œ๋Š” Linked, ์กฐํšŒ๋Š” Array)

1. ArrayList์™€ LinkedList์˜ ์ฐจ์ดArrayList์™€ LinkedList๋Š” Java์—์„œ ์ œ๊ณตํ•˜๋Š” ๋‘ ๊ฐ€์ง€ ์ฃผ์š” List ๊ตฌํ˜„์ฒด๋กœ, ๊ฐ๊ฐ์˜ ๊ตฌ์กฐ์™€ ์‚ฌ์šฉ ๋ชฉ์ ์ด ๋‹ค๋ฅด๋‹ค. ArrayList- ๊ตฌ์กฐ : ๋‚ด๋ถ€์ ์œผ๋กœ ๋™์  ๋ฐฐ์—ด(Dynamic Array)์„ ์‚ฌ์šฉํ•œ๋‹ค.-

yeonbikim.tistory.com

 

+ Recent posts