티스토리 뷰
1. 리스트(List) 컬렉션
1) ArrayList
List<E> list = new ArrayList<E>();
==> <E>는 type parameter.
List<String> list = new ArrayList<String>(30);
==>String 타입 객체 30개를 저장할 수 있는 용량을 가짐
- 순서가 있음
- 중복이 가능함
- 배열과 매우 유사함
package chapter15; import java.util.ArrayList; import java.util.List; public class ArrayListEx { public void ex1() { List<String> list = new ArrayList<String>(); list.add("Java"); list.add("JDBC"); list.add("servlet/JSP"); list.add(2, "Database"); list.add("Spring"); list.add("iBATIS"); int size = list.size(); System.out.println("총 객체 수 : "+ size); System.out.println(); String skill = list.get(2); System.out.println("2: "+skill); System.out.println(); for (int i = 0;i<list.size(); i++) { String str = list.get(i); System.out.println(i+": "+str); } System.out.println(); list.remove(2); list.remove(2); list.remove("iBATIS"); for (int i = 0;i<list.size(); i++) { String str = list.get(i); System.out.println(i+": "+str); } System.out.println(); //삭제 로직은 보통 거꾸로 포문 돌림 for (int r = list.size()-1; r>=0; r--) { if (list.get(r).equals("Java")) list.remove(r); } for (int i = 0;i<list.size(); i++) { String str = list.get(i); System.out.println(i+": "+str); } System.out.println(); } public ArrayListEx() { ex1(); } public static void main(String[] args) { new ArrayListEx(); } }
2) Vector
package chapter15; import java.util.List; import java.util.Vector; public class VectorEx { List<Board> list = new Vector<Board>(); public void ex1() { list.add(new Board("제목1", "내용1", "작성자1")); list.add(new Board("제목2", "내용2", "작성자2")); list.add(new Board("제목3", "내용3", "작성자3")); list.add(new Board("제목4", "내용4", "작성자4")); list.add(new Board("제목5", "내용5", "작성자5")); prn(); //set활용 list.set(3, new Board("제목0", "내용0", "작성자0")); list.set(0, list.get(2)); prn(); //remove 어떻게 삭제되는지 이해 list.remove(2); list.remove(2); this.prn(); } public VectorEx(){ ex1(); } //출력 public void prn() { for (int i = 0; i<list.size(); i++) { Board b = list.get(i); System.out.println(b.subject+", "+b.content+", "+b.writer); } System.out.println(); } public static void main(String[] args) { new VectorEx(); } }
package chapter15; public class Board { String subject; String content; String writer; public Board(String subject, String content, String writer) { this.subject = subject; this.content = content; this.writer = writer; } }
3) LinkedList
package chapter15; import java.util.ArrayList; import java.util.LinkedList; import java.util.List; public class LinkedListEx { public void ex1(){ List<String> l1 = new ArrayList<String>(); List<String> l2 = new LinkedList<String>(); long sTime; //시작 시간 long eTime; //end time sTime = System.nanoTime(); for (int i = 0; i<10000; i++) { l1.add(0, String.valueOf(i)); } eTime = System.nanoTime(); System.out.println("ArrayList 걸린 시간: "+(eTime - sTime)+"ns"); sTime = System.nanoTime(); for (int i = 0; i<10000; i++) { l2.add(0, String.valueOf(i)); } eTime = System.nanoTime(); System.out.println("LinkedList 걸린 시간: "+(eTime - sTime)+"ns"); } public LinkedListEx(){ ex1(); } public static void main(String[] args) { new LinkedListEx(); } }
2. 셋(Set) 컬렉션
-Iterator<E> iterator()
저장된 객체를 한 번씩 가져오는 반복자 리턴
- 순서가 없음
- 중복이 불가함
- Iterator 사용
1) HashSet
package chapter15; import java.util.HashSet; import java.util.Iterator; import java.util.Set; public class HashSetEx1 { public void ex1() { Set<String> set = new HashSet<String>(); set.add("Java"); set.add("JDBC"); set.add("Servlet/JSP"); set.add("Java"); set.add("iBATIS"); int size = set.size(); System.out.println("총 객체 수: "+size); Iterator<String> itr = set.iterator(); //반복자 얻기 while(itr.hasNext()) { String element = itr.next(); System.out.println("\t"+element); } set.remove("JDBC"); set.remove("iBATIS"); System.out.println("총 객체 수: "+set.size()); itr = set.iterator(); while(itr.hasNext()) { String element = itr.next(); System.out.println("\t"+element); } set.clear(); if (set.isEmpty()){ System.out.println("비어 있음"); } } public HashSetEx1() { ex1(); } public static void main(String[] args) { new HashSetEx1(); } }
public class Member { String name; int age; public Member(String name, int age) { this.name = name; this.age = age; } @Override public boolean equals(Object o) { boolean b = false; if (o instanceof Member) { Member m = (Member)o; if(m.name.equals(name) && m.age==age); b = true; } else { b = false; } return b; } @Override public int hashCode() { return name.hashCode() + age; //String타입만 } }
import java.util.HashSet; import java.util.Set; public class HashSetEx2 { public void ex1() { Set<Member> set = new HashSet<Member>(); set.add(new Member("강동원", 30)); set.add(new Member("강동원", 30)); System.out.println("총 객체 수: "+set.size()); } public HashSetEx2() { ex1(); } public static void main(String[] args) { new HashSetEx2(); } }
2) Map
- <Key, Value>
- Key: 중복 불가
- V: 중복 가능
- Iterator, Map Entry
3) HashMap
'배움과 복습' 카테고리의 다른 글
클래스명 뒤에 Dao, Vo, Dto 등을 붙이는 이유 (0) | 2017.09.12 |
---|---|
p.743 - 37행 (0) | 2017.09.11 |
제너릭(Generic) (0) | 2017.09.11 |
멀티 스레드(multi-Thread) (0) | 2017.09.08 |
중첩 클래스 (0) | 2017.09.04 |
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
TAG
- MONTH_BETWEEN
- IN(var1 var2 var3)
- 상속
- hierarchical query
- 로컬 클래스
- 계층형 쿼리
- tables in htmll
- 복수행 함수
- DECODE()
- z-dindex
- DI(의존성 주입)
- 멤버 클래스
- 타입변환과 다형성
- 테이블 데이터 복사
- SQL Operator
- Generic Type
- Interface
- 데이터 딕셔너리
- GROUP BY절
- IS RECORD
- NVL2()
- FileChannel
- SELECT절 명령어
- NVL()
- CLASS
- Maven Project
- casring
- 중첩 클래스
- !(not)
- implements
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
글 보관함