반응형
Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
Tags
- ID중복
- 아이디중복
- Daemon()
- String char[] 형변환
- 메모리스트림
- interrupted()
- include 지시자
- 스레드그룸
- isinterrupted()
- first-of-child
- MemoryStream
- char[] String 형변환
- interrupt()
- sleep()메소드
- first-child
- include액션태그
- 상관서브쿼리
- include지시자
- 리눅스세팅
- 동기화
- Linux셋팅
- 리눅스셋팅
- StringWriter
- InputDialog
- 표현 언어
- Linux세팅
- StringReader
- ThreadGroup()
- ObjectInputStream
- 상관 서브 쿼리
Archives
- Today
- Total
다연이네
[days21] 컬렉션 프레임워크 본문
반응형
컬렉션 프레임워크
- 데이터 군을 저장하는 클래스들을 표준화한 설계
- 배열의 단점(ex. 동적으로 변하지 않는 길이, 데이터 삽입 삭제시의 복잡성)을 해결해준다.
[List] ArrayList, Vector, LinkedList, Stack, PQueue
[Set] HashSet, TreeSet, LinkedHashSet
[Map] HashMap, Hashtable, LinkedHashMap
TreeMap 이진트리구조 + 맵
[Tree] 트리가 붙어있으면 => 검색 성능이 향상된 맵 계열의 컬렉션 클래스
[Hash] 해시가 붙어있으면 => 검색 성능 향상
//검색 기능 필요하면 - Hash~~ 찾아라
//부분(범위)검색, 정렬이 필요하면 - Tree~ [Set]
- HashSet
- TreeSet
- LinkedHashSet
Set은 인덱스로 객체를 관리하지 않기 때문에 데이터를 검색하기 위해서는 iterator() 메서드로 Iterator(반복자)를 생성하고 데이터를 가져와야 한다.
> HashSet과 TreeSet의 차이 : 트리셋은 오름차순 정렬이 기본
> LinkedHashSet 은 입력된 순서대로 데이터 관리
ArrayList 기본 add, remove
package review;
import java.util.ArrayList;
public class Review01 {
public static void main(String[] args) {
ArrayList list = new ArrayList();
list.add(1);
list.add(2);
list.add(3);
System.out.println(list); //[1, 2, 3]
list.add(1, 100); //[1, 100, 2, 3]
list.remove(2);
System.out.println(list); //[1, 100, 3]
}
}
package review;
import java.util.ArrayList;
import java.util.Collection;
import java.util.Collections;
import java.util.Iterator;
import java.util.List;
public class Review01 {
public static void main(String[] args) {
ArrayList team01 = new ArrayList();
team01.add("한애숙");
team01.add("오영복");
team01.add("오아리");
team01.add("오동동");
team01.add("한애숙");
team01.add(null);
team01.add(null);
System.out.println(team01); //[한애숙, 오영복, 오아리, 오동동, 한애숙, null, null]
//문제1 team01에 오아리 있는지 확인
System.out.println(team01.contains("오아리")); //true
System.out.println(team01.indexOf("오아리")); //2 (없다면 -1)
//문제2 [1]번째 사람을 찾아오자
System.out.println(team01.get(1)); //오영복
//문제3 for-each문을 활용해 모든 사람 이름 출력
for (Object object : team01) {
String name = (String)object; //다운캐스팅
System.out.print(name+" ");
}
//문제4 사람 지우기
//team01.remove(0); //위치값으로 지우기
//team01.remove("한애숙"); //객체명으로 지우기
//문제5 null값 지우기 (null 2개 존재)
/*for (int i = team01.size()-1; i >=0 ; i--) {
String name = (String)team01.get(i);
if(name==null) team01.remove(i);
}*/
//람다식 사용
team01.removeIf(a -> a==null);
System.out.println(team01); //[한애숙, 오영복, 오아리, 오동동, 한애숙]
//문제5 정렬
Collections.sort(team01);
System.out.println(team01);
ArrayList team02 = new ArrayList();
team02.add("봉미선");
team02.add("신형만");
team02.add("신짱구");
team02.add("신짱아");
team02.add("흰둥이");
ArrayList class5 = new ArrayList(team01);
//team01을 class5에 삽입
class5.addAll(team02);
//team02도 class5에 삽입
List list = class5.subList(2, 5); //2~4값 잘라옴
System.out.println(list);
//신짱구->스폰지밥 수정
class5.set(class5.indexOf("신짱구"), "스폰지밥");
//용량 - 잘 사용X
//team01.ensureCapacity();
//반복자 돌려줌
Iterator ir = class5.iterator();
while (ir.hasNext()) { //요소 가지고 있니? T/F
String name = (String) ir.next(); //next()요소를 얻어오는 메소드
System.out.println(name);
}
}
}
반응형
'Java' 카테고리의 다른 글
[days22] 컬렉션 클래스<List> - LinkedList (0) | 2020.10.21 |
---|---|
[days22] 컬렉션 클래스<List> - ArrayList와 Vector +열거자와 반복자 (0) | 2020.10.21 |
[days21] JDK 1.8 java.time (0) | 2020.10.19 |
[days20] 형식화(format) 클래스 (0) | 2020.10.18 |
[days20] 날짜와 시간 (0) | 2020.10.18 |
Comments