Notice
Recent Posts
Recent Comments
Link
«   2026/03   »
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30 31
Archives
Today
Total
관리 메뉴

코딩기록

Day - 25 [JAVA_MVC] Generic , Linked List, HashSet 본문

study

Day - 25 [JAVA_MVC] Generic , Linked List, HashSet

9-99zy 2023. 3. 8. 16:18

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 의 속도 체크를 해 보자

어떤 방식으로 할 것인가?

요약

  1. Array List 는 array 와 비슷하지만 훨씬 편리하다.
  2. 다만 중간 index 에 입력과 삭제가 잦은 경우 불리하다.
  3. 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 가 낫다.