[개발] - Java/후발대
후발대 13일차 전체 코드
완벽한 장면
2023. 2. 3. 08:55
Generics 2
Generics (제네릭스, 타입이 여러개일때), WrapperClass, 컬렉션 프레임 워크 中 ArrayList , LinkedList
- 컬렉션 프레임워크라고 함은 많은 데이터를 효과적으로 쉽고 편리하게 관리하기 위해서 자바에서 제공해주는 어떤 클래스들의 모음
- 컬렉션 프레임 워크에서는 데이터를 저장하는 자료구조에 따라 다음과 같은 주요 인터페이스를 정의하고 있음
-
- List 인터페이스
- Set 인터페이스
- Map 인터페이스
- 1에서도 ArrayList 와 LinkedList가 있음
Generics 추가
import com.sparta.hbd04.prac01.prac12.coffee.*;
import com.sparta.hbd04.prac01.prac12.user.User;
import com.sparta.hbd04.prac01.prac12.user.VIPUser;
public class _02_GenericsClass {
public static void main(String[] args) {
CoffeeByNumber c1 = new CoffeeByNumber(33);
c1.ready();
CoffeeByNickname c2 = new CoffeeByNickname("아이유");
c2.ready();
System.out.println("---------");
CoffeeByName c3 = new CoffeeByName(34);
c3.ready();
CoffeeByName c4 = new CoffeeByName("이지은");
c4.ready();
System.out.println("-----");
int c3Name = (int)c3.name;
System.out.println("주문 고객 번호: "+c3Name);
String c4Name= (String)c4.name;
System.out.println("주문 고객 번호: "+c4Name);
// c4Name= (String)c3.name;
System.out.println("-----------");
Coffee<Integer> c5 = new Coffee<>(35);
c5.ready();
int c5Name = c5.name;
System.out.println("주문 고객 번호: " + c5Name);
Coffee<String> c6 = new Coffee<>("강동원");
c6.ready();
String c6Name =c6.name;
System.out.println("주문 고객 이름: " + c6Name);
System.out.println("------------");
CoffeeByUser<User> c7 = new CoffeeByUser<>(new User("정우성"));
c7.ready();
CoffeeByUser<VIPUser> c8 = new CoffeeByUser<>(new VIPUser("박서준"));
c8.ready();
System.out.println("---------------");
orderCoffee("유재석");
orderCoffee(36);
System.out.println("----------");
orderCoffee("한소희", "아메리카노");
orderCoffee(37, "라떼");
}
public static <T> void orderCoffee(T name) {
System.out.println("커피 준비 완료 : " + name);
}
public static <T, V> void orderCoffee(T name, V coffee) {
System.out.println(coffee+ " 준비 완료 : " + name);
}
}
래퍼 클래스
public class _03_WrapperClass {
public static void main(String[] args) {
// 래퍼(Wrapper) 클래스
// int double float char
Integer i = 123; // int i = 123;
Double d = 1.0; //double d = 1.0;
Character c = 'A'; //char c = 'A'
System.out.println(i);
System.out.println(d);
System.out.println(c);
System.out.println("---------------");
System.out.println(i.intValue());
System.out.println(d.intValue());
System.out.println(c.charValue());
System.out.println("------------");
String s = i.toString();
System.out.println(s);
System.out.println("------------");
// 추가 예제
Integer ii = new Integer(10); // 박싱
int num1 = ii.intValue(); // 언박싱
System.out.println(num1);
Integer iii = 10;
int num2 = iii;
if (ii.equals(iii)) {
System.out.println("같다.");
} else {
System.out.println("다르다.");
}
if (num1 == num2) { // 값
System.out.println("같다.");
} else {
System.out.println("다르다.");
}
Character c1 = 'A'; // 오토박싱
char ch = c1; // 오토언박싱
System.out.println(ch);
}
}
ArrayList
import java.util.ArrayList;
import java.util.Collections;
public class _04_ArrayList {
public static void main(String[] args) {
// 컬렉션 프레임워크 (List, Set, Map)
// int[] array = new int[3];
// array[0]=1;
// array[1]=2;
// array[2]=3;
ArrayList<String> list = new ArrayList<>();
// 데이터 추가
list.add("유재석");
list.add("조세호");
list.add("김종국");
list.add("박명수");
list.add("강호동");
// 데이터 조회 (인덱스기준)
System.out.println(list.get(0));
System.out.println(list.get(1));
System.out.println(list.get(2));
System.out.println(list.get(3));
System.out.println(list.get(4));
System.out.println("-----------");
//삭제 (박명수씨가 이사)
System.out.println("신청 학생 수 (이사 전) : " + list.size()); //5
list.remove("박명수");
System.out.println("신청 학생 수 (이사 후) : " + list.size()); //4
System.out.println(list.get(3));
System.out.println("-----------");
System.out.println("남은 학생 후 (제외 전) : " + list.size()); //4
list.remove(list.size() - 1);
System.out.println("남은 학생 후 (제외 후) : " + list.size()); //3
System.out.println("-----------");
// 순회
for (String s : list) {
System.out.println(s);
// for (int i = 0; i < list.size()-1; i++) {
}
System.out.println("------------");
//변경 (수강권 양도)
System.out.println("수강권 양도 전: " +list.get(0));
list.set(0,"이수근");
System.out.println("수강권 양도 후: "+ list.get(0));
System.out.println("-------------");
// 확인
System.out.println(list.indexOf("김종국"));
// 선착순 5명 내에 포함되어 있는가?
if(list.contains("김종국")) {
System.out.println("수강 신청 성공");
}else{
System.out.println("수강 신청 실패");
}
System.out.println("-----------");
// 전체 삭제
list.clear();
if(list.isEmpty()) {
System.out.println("학생 수 : " +list.size());
System.out.println("리스트가 비었습니다.");
}
System.out.println("---------");
// 다음 학기에 새로 공부를 시작
list.add("유재석");
list.add("조세호");
list.add("김종국");
list.add("박명수");
list.add("강호동");
// 정렬
Collections.sort(list);
for(String s : list) {
System.out.println(s);
}
}
}
LinkedList (1)
import java.util.LinkedList;
public class _05_LinkedList {
public static void main(String[] args) {
// 링크드 리스트
LinkedList<String> list = new LinkedList<>();
list.add("유재석");
list.add("조세호");
list.add("김종국");
list.add("박명수");
list.add("강호동");
// 데이터 조회(인덱스)
System.out.println(list.get(0));
System.out.println(list.get(1));
System.out.println(list.getFirst());
System.out.println(list.getLast());
System.out.println("------------");
// 추가
list.addFirst("서장훈");
for(String s : list){
System.out.println(s);
}
System.out.println("-----------");
list.addLast("김희철");
for(String s : list){
System.out.println(s);
}
System.out.println("--------");
System.out.println("학생 추가 전: " + list.get(1));
list.add(1,"김영철");
System.out.println("학생 추가 후 : " + list.get(1));
System.out.println("학생 추가 후 : " + list.get(2));
}
}
수업 이후 가져야할 Action item
- ArrayList와 LinkedList를 알고 사용할 수 있다.
- 이 둘의 특징과 차이를 안다. (기술 면접 시 java에서 알아야 할 부분)
- WrapperClass에 대해서 안다.
- 문법을 작성하고 사용하는 것에 익숙해 진다.
728x90
반응형