728x90
반응형
제네릭과 컬렉션
LINKEDLIST
- 데이터 간의 연결을 링크를 통해 구성한다
- 빈번한 데이터 추가 및 삭제 시 유용하다.
- 사용법은 ArrayList와 동일하다.
SET<>
- 원소의 중복을 허용하지 않는 자료 구조
package java0114;
import java.util.HashSet;
import java.util.Set;
public class SetJava {
public static void main(String args[]) {
Set<String> s = new HashSet<String>();
String[] sample = {"대충","벌레","블로거","유튜버","대충"};
for(String a : sample) {
if(!s.add(a))
System.out.println("Set은 중복된 단어가 불가능하다 \n 중복된 단어는 : "+a);
}
}
}
s의 배열에는 중복된 단어가 들어갈수없다.
MAP<>
- 사전과 같은 자료 구조이다.
- 키(key)에 값(value)이 매핑된다.
package java0114;
import java.util.HashMap;
import java.util.Map;
public class Word {
public static void main(String[] args) {
// TODO Auto-generated method stub
Map<String,Integer> m = new HashMap<String,Integer>();
String[] sample = {"대충","벌레","유튜브","대충","하다"};
for(String a : sample) {
Integer freq = m.get(a);
m.put(a, (freq == null) ? 1 : freq+1);
}
System.out.println(m.size()+" 단어 개수");
System.out.println(m.containsKey("대충"));
System.out.println(m.isEmpty());
System.out.println(m);
}
}
단어의 빈도수를 나타내는 로직이다.
COLLECTION 클래스
- 정렬(Sorting)
sort() : List 인터페이스를 구현하는 컬렉션에 대하여 정렬을 수행한다.
List<String> list = new LinkedList<String>();
list.add("대충");
list.add("벌레");
list.add("블로그");
Collections.sort(list);
Collections.sort()를 하게되면 리스트(배열)안의 문자열이 정렬이 된다.
package java0114;
import java.util.Arrays;
import java.util.Collections;
import java.util.List;
public class Sort {
public static void main(String[] args) {
// TODO Auto-generated method stub
String[] sample = {"대충","벌레","유튜브","블로그"};
List<String> list = Arrays.asList(sample);
Collections.sort(list);
System.out.println(list);
}
}
- 섞기(Shuffling)
- 탐색(Searching)
package java0114;
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
public class Search {
public static void main(String[] args) {
// TODO Auto-generated method stub
int key=50;
List<Integer> list = new ArrayList<Integer>();
for(int i =0 ; i<100;i++)
list.add(i);
int index=Collections.binarySearch(list, key);
System.out.println("탐색 값 : "+index);
}
}
마무리
제네릭과 컬렉션은 아직 이해가 많이 어렵다..
좀더 공부해서 이해를 할수있도록 노력해봐야겠다.
관련글
1.2019/10/22 - [IT/Java] - Java 공부 정리 [1]
2.2019/10/23 - [IT/Java] - Java 공부 정리 [2] - 상속
3.2019/10/24 - [IT/Java] - Java 공부 정리 [3] - 상속(2)
4.2019/11/08 - [IT/Java] - Java 공부 정리[4] - 배열
5.2020/01/08 - [IT/Java] - Java 공부 정리[5] - 추상,인터페이스
6.2020/01/09 - [IT/Java] - Java 공부 정리[6] - 예외 처리 (Exception)
반응형