코딩기록
Day - 25 [JAVA_MVC] Generic , Linked List, HashSet 본문
Collection Framework 사용 시 계속해서 <> 가 나온다. (꺽새)
이를 Generic 이라고 부른다.
Generic 의 역할과 장점은?
- 클래스의 멤버들은 한 번 데이터 타입이 지정되면 변경 할 수 없다.
- 제너릭으로 가능 하다.
- 제너릭을 사용 하면 클래스를 객체화 하면서 멤버들의 데이터 타입을 유연하게 지정 할 수 있다.
- <> 꺽새.
model
// 리스트 불러오기 - <제너릭>
public ArrayList<BoardBean> getList() {
Box box = new Box();
box.no = 13;
box.name = "사과박스";
box.grade = 'A';
//난 이 박스에 숫자만 넣고 싶다면?
Box<Integer> box = new Box<Integer>();
box.no = 13;
box.name = 12345;
box.grade = 1;
//문자열,숫자,문자열
Box<String, Integer, String> box = new Box<String, Integer, String>();
box.no = "1";
box.name = 1234;
box.grade = "A";
return list;
}
box class
public class Box<O,N,G> {// 이 클래스는 객체화 할 때 <> 안의 데이터 타입을 멤버들이 따라간다.
public O no;
public N name;
public G grade;
}
Linked List
- 기본적으로 Array List 와 Linked List 의 사용방법은 같다.
- Array List 와 달리 Linked List 는 좌우 데이터의 주소를 기억하는 구조를 갖는다.
- 그래서 중간에 데이터가 추가 / 삭제 되는데 높은 효율을 자랑한다.

Array List 와 Linked List 의 속도 체크를 해 보자
어떤 방식으로 할 것인가?

요약
- Array List 는 array 와 비슷하지만 훨씬 편리하다.
- 다만 중간 index 에 입력과 삭제가 잦은 경우 불리하다.
- Linked List 는 반대로 위 경우에 유리 하다.
Set Collection - HashSet
- Set collection 은 순서가 유지 되지 않는다.
- 하지만 중복을 허용 하지 않는 특성이 있다.
- 검색 기능이 없는 대신에 하나씩 꺼낼 수 있는 Iterator 를 제공한다.
- 검색기능이 없는것을 제외한 나머지는 collection framework 라 list와 똑같다.
Hash Set 역시 최상위는 collection interface 이기 때문에 기본적인 method 는 같다.
set 은 iterator 를 통해 쪼개고 next를 통해 꺼내온다.

set 에서 데이터 뽑는 방법(1)
1. iterator 로 쪼개 준다.
2.has next 로 꺼낼 값이 있는지 확인한다.
3. next 메서드를 이용해서 가져온다.
(한방에 처리 가능한)방법(2)
향상된 for 문을 사용한다.
for (String val : set)
여러가지 값을 보낼때
1. 배열을 사용한다.
2. class 를 사용한다. -> 필드 명을 다 만들어놔야한다.
3. arraylist 를 사용한다. -> 예를들어 String 타입으로 계속 여러개를 만들어 놓으면 arraylist 가 낫다.
'study' 카테고리의 다른 글
| Day - 22 [JAVA_MVC] String 문자열 (0) | 2023.03.17 |
|---|---|
| Day - 30 [JAVA] - Multi Thread {Thread State/control (sleep..) , Demon Thread} (0) | 2023.03.15 |
| Day-10 [J-Query] - set, sample, css, class, hideShow, fade, slide, animate (0) | 2023.02.14 |
| Day - 07 [JAVA Script] - window, location, child&parent (0) | 2023.02.09 |
| Day - 07 [JAVA Script] - object, 이벤트리스너, 컬러체인지 (0) | 2023.02.09 |