생활코딩 자바 공부 기록
1. ArrayList의 사용법
배열: 연관된 데이터를 관리하기 위한 수단
컬렉션즈 프레임워크: 배열의 크기를 변경할 수 있다
import java.util.ArrayList;
public class ArrayListDemo {
public static void main(String[] args) {
String[] arrayObj = new String[2];
arrayObj[0] = "one";
arrayObj[1] = "two";
// arrayObj[2] = "three"; // 컴파일 오류가 발생한다
System.out.println("==== Array ====");
for (int i = 0; i < arrayObj.length; i++) {
System.out.println(arrayObj[i]);
}
ArrayList<String> al = new ArrayList<String>(); // 제네릭 도입
al.add("one");
al.add("two");
al.add("three");
System.out.println("==== ArrayList ====");
for (int i = 0; i < al.size(); i++) {
String value = al.get(i);
System.out.println(value);
}
}
}
2. 전체적인 구성
컬렉션즈 프레임워크라는 것은 다른 말로는 컨테이너라고 부른다.
즉, 값을 담는 그릇이라는 의미.
3. List와 Set의 차이점
List는 중복을 허용하고, Set은 중복을 허용하지 않는다.
List 순서 보장 O, Set 순서 보장 X
import java.util.HashSet;
import java.util.Iterator;
public class SetDemo {
public static void main(String[] args) {
HashSet<Integer> A = new HashSet<Integer>();
A.add(1);
A.add(2);
A.add(2);
A.add(2);
A.add(2);
A.add(3);
Iterator hi = (Iterator) A.iterator();
while (hi.hasNext()) {
System.out.println(hi.next());
}
}
}
HashSet 중복 X
import java.util.ArrayList;
import java.util.HashSet;
import java.util.Iterator;
public class SetDemo {
public static void main(String[] args) {
ArrayList<Integer> A = new ArrayList<Integer>();
A.add(1);
A.add(2);
A.add(2);
A.add(2);
A.add(2);
A.add(3);
Iterator hi = (Iterator) A.iterator();
while (hi.hasNext()) {
System.out.println(hi.next());
}
}
}
ArrayList 중복 O
4. Set이란?
import java.util.HashSet;
import java.util.Iterator;
public class SetDemo {
public static void main(String[] args) {
HashSet<Integer> A = new HashSet<Integer>();
A.add(1);
A.add(2);
A.add(3);
HashSet<Integer> B = new HashSet<Integer>();
B.add(3);
B.add(4);
B.add(5);
HashSet<Integer> C = new HashSet<Integer>();
C.add(1);
C.add(2);
System.out.println(A.containsAll(B)); // false (A에 B의 모든 원소가 담겨있나? ㄴㄴ)
System.out.println(A.containsAll(C)); // true (A에 C의 모든 원소가 담겨있나? ㅇㅇ)
A.addAll(B); // B전체를 A에 add 한다
A.retainAll(B); // 집합 A에도 있고 집합 B에도 있는 원소
A.removeAll(B); // A에서 B를 뺐을 때 A에 남는 것
Iterator hi = (Iterator) A.iterator();
while (hi.hasNext()) {
System.out.println(hi.next());
}
}
}
A.addAll(B);
결과로 1,2,3,4,5가 출력!
A.retainAll(B);
결과로 3이 출력
A.removeAll(B);
결과로 1,2 출력
5. Collection Interface
https://prashantgaurav1.files.wordpress.com/2013/12/java-util-collection.gif
Collection은 인터페이스 / Set과 List도 인터페이스
AbstractCollection은 클래스
6. iterator
반복자?
searching
java iterator api
Iterator (Java Platform SE 8 )
An iterator over a collection. Iterator takes the place of Enumeration in the Java Collections Framework. Iterators differ from enumerations in two ways: Iterators allow the caller to remove elements from the underlying collection during the iteration with
docs.oracle.com
import java.util.HashSet;
import java.util.Iterator;
public class SetDemo {
public static void main(String[] args) {
HashSet<Integer> A = new HashSet<Integer>();
A.add(1);
A.add(2);
A.add(3);
Iterator hi = (Iterator) A.iterator();
while (hi.hasNext()) {
System.out.println(hi.next());
}
}
}
HashSet 자리를 ArrayList로 변경 가능!
Collection<Integer> A = new HashSet<Integer>();
Collection으로도 변경 가능!
Collection interface 하위에 Set이랑 List가 있고, 그 아래에 관련 클래스들이 있어서.
결국에는 다 연결 연결.
뭔가 피라미드와 같은 느낌.
7. Map의 기본 사용법 1
Key - Value
Key는 중복 ㄴㄴ
Value 중복 ㅇㅇ
8. Map의 기본 사용법 2
import java.util.HashMap;
import java.util.Iterator;
import java.util.Map;
import java.util.Set;
public class MapDemo {
public static void main(String[] args) {
HashMap<String, Integer> a = new HashMap<String, Integer>();
a.put("one", 1);
a.put("two", 2);
a.put("three", 3);
a.put("four", 4);
System.out.println(a.get("one"));
System.out.println(a.get("two"));
System.out.println(a.get("three"));
IteratorUsingForEach(a);
teratorUsingIterator(a);
}
static void IteratorUsingForEach(HashMap map) {
Set<Map.Entry<String, Integer>> entries = map.entrySet();
for (Map.Entry<String, Integer> entry : entries) {
System.out.println(entry.getKey() + " : " + entry.getValue());
}
}
static void teratorUsingIterator(HashMap map) {
Set<Map.Entry<String, Integer>> entries = map.entrySet();
Iterator<Map.Entry<String, Integer>> i = entries.iterator();
while (i.hasNext()) {
Map.Entry<String, Integer> entry = i.next();
System.out.println(entry.getKey() + " : " + entry.getValue());
}
}
}
9. Collections의 사용법과 정렬
import java.util.ArrayList;
import java.util.Collections;
import java.util.Iterator;
import java.util.List;
class Computer implements Comparable { // Comparable 인터페이스는 compareTo라는 메소드를 구현하는 것을 강제하고 있다
int serial;
String owner;
Computer(int serial, String owner) {
this.serial = serial;
this.owner = owner;
}
public int compareTo(Object o) {
return this.serial - ((Computer) o).serial;
}
public String toString() {
return serial + " " + owner;
}
}
public class CollectionsDemo {
public static void main(String[] args) {
List<Computer> computers = new ArrayList<Computer>();
computers.add(new Computer(500, "egoing"));
computers.add(new Computer(200, "leezche"));
computers.add(new Computer(3233, "graphittie"));
Iterator i = computers.iterator();
System.out.println("before");
while (i.hasNext()) {
System.out.println(i.next());
}
// 정렬
Collections.sort(computers); // Collections 는 class(정렬 등 여러 가지와 관련된 일을 처리 해주는 클래스), Collection 은 interface
System.out.println("\nafter");
i = computers.iterator();
while (i.hasNext()) {
System.out.println(i.next());
}
}
}
sort
public static <T extends Comparable<? super T>> void sort(List<T> list) { list.sort(null);}
'SOMEDAY > JAVA' 카테고리의 다른 글
[JSP] Java Server Pages (0) | 2022.03.10 |
---|---|
[JSP] 프로젝트 생성 & JSP 파일 생성 (0) | 2022.03.09 |
[JAVA] 제네릭 1~5 Generic - Data Type (0) | 2022.02.13 |
[JAVA] 예외 1~9 Exception 예외 (try~catch finally throws) (0) | 2022.02.12 |
[JAVA] 인터페이스 1~5 interface , 다형성 (0) | 2022.02.11 |