#멋쟁이사자처럼 #부트캠프 #백엔드 #JAVA

실습문제

List<T>

List<String> list = new ArrayList<>();
list.add("a");
list.add("b");
list.add("c");

for (int i = 0; i < list.size(); i++) {
	System.out.println(list.get(i));
}

Iterator<String> iter = list.iterator();

while (iter.hasNext()) {
	System.out.println(iter.next());
	// iter.remove();
}

System.out.println("==================");

for (String item : list) {
    System.out.println(item);
}

Set<T>

Set<String> set = new HashSet<>();
set.add("a");
set.add("b");
set.add("c");

// set은 순서가 없는 자료구조이므로 index가 존재하지 않는다.
Iterator<String> setIter = set.iterator();

while (setIter.hasNext()) {
	System.out.println(setIter.next());
}

System.out.println("==================");

for(String item : set) {
    System.out.println(item);
}

Example: Iterating Through a HashMap

Map<Integer, String> map = new HashMap<>();
map.put(11, "kang");
map.put(22, "kim");
map.put(33, "hong");

System.out.println(map);

String value = map.get(33);
System.out.println(value);

Iterator<Integer> keys = map.keySet().iterator();

while (keys.hasNext()) {
    Integer key = keys.next();
    String item = map.get(key);

    System.out.println(key + " :: " + item);
}

Example: Person

Person

package org.example.day11;

public class Person {
        private String idNumber;
        private String name;
        private String phoneNumber;
        private String address;

        public Person(String idNumber, String name, String phoneNumber, String address) {
                this.idNumber = idNumber;
                this.name = name;
                this.phoneNumber = phoneNumber;
                this.address = address;
        }

        public String getIdNumber() {
                return idNumber;
        }

        public void setIdNumber(String idNumber) {
                this.idNumber = idNumber;
        }

        public String getName() {
                return name;
        }

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

        public String getPhoneNumber() {
                return phoneNumber;
        }

        public void setPhoneNumber(String phoneNumber) {
                this.phoneNumber = phoneNumber;
        }

        public String getAddress() {
                return address;
        }

        public void setAddress(String address) {
                this.address = address;
        }

        @Override
        public String toString() {
                return "Person [idNumber=" + idNumber + ", name=" + name + ", phoneNumber="
                                + phoneNumber + ", address=" + address + "]";
        }
}

PersonDemo

import java.util.*;

public class PersonDemo {
    public static void main(String[] args) {

        Person person1 =
                new Person(
                        "123-111",
                        "kang",
                        "010-111-2222",
                        "강남구 역삼동");
        Person person2 =
                new Person(
                        "123-222",
                        "kang",
                        "010-111-2222",
                        "강남구 역삼동");
        Person person3 =
                new Person(
                        "123-333",
                        "kang",
                        "010-111-2222",
                        "강남구 역삼동");
        Person person4 =
                new Person(
                        "123-444",
                        "kang",
                        "010-111-2222",
                        "강남구 역삼동");

        List<Person> personList = new ArrayList<>();
        personList.add(person1);
        personList.add(person2);
        personList.add(person3);
        personList.add(person4);

        Set<Person> personSet = new HashSet<>();
        personSet.add(person1);
        personSet.add(person2);
        personSet.add(person3);
        personSet.add(person4);

        Map<String, Person> personMap = new HashMap<>();
        personMap.put(person1.getIdNumber(), person1);
        personMap.put(person2.getIdNumber(), person2);
        personMap.put(person3.getIdNumber(), person3);
        personMap.put(person4.getIdNumber(), person4);

        Person found1 = null;
        {
            for (Person person : personList) {
                if (person.getIdNumber().equals("123-333")) {
                    found1 = person;
                }
            }
        }

        Person found2 = null;
        {
            // Iterator<Person> iterator = personSet.iterator();
            // while (iterator.hasNext()) {
            // Person checkingPerson = iterator.next();
            // if (checkingPerson.getIdNumber().equals("123-333")) {
            // found2 = checkingPerson;
            // }
            // }
            for (Person person : personSet) {
                if (person.getIdNumber().equals("123-333")) {
                    found2 = person;
                }
            }

            Person found3 = null;
            {
                // Iterator<String> iterator = personMap.keySet().iterator();
                // while (iterator.hasNext()) {
                // String checkingKey = iterator.next();
                // Person checkingPerson = personMap.get(checkingKey);
                // if (checkingPerson.getIdNumber().equals("123-333")) {
                // found3 = checkingPerson;
                // }
                // }
                for (String key : personMap.keySet()) {
                    Person checkingPerson = personMap.get(key);
                    if (checkingPerson.getIdNumber().equals("123-333")) {
                        found3 = checkingPerson;
                    }
                }

            }

            System.out.println(found1);
            System.out.println(found2);
            System.out.println(found3);
        }
    }
}

Comparable Interface

The Comparable interface in Java is used to define the natural ordering of objects for a user-defined class. It is part of the java.lang package and it provides a compareTo() method to compare instances of the class. A class has to implement a Comparable interface to define its natural ordering.