(데이터그룹을 관리하기 위한 틀)
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
public class ArrayListTest {
public static void main(String[] args) {
List<Integer> list1 = new ArrayList<>();
list1.add(new Integer(5));
list1.add(2); // AutoBoxing
list1.add(3);
list1.add(1);
list1.add(4);
List<Integer> list2 = new ArrayList<>(list1.subList(1, 4)); // list1에 있는것을 list2에 똑같이 넣어준다
System.out.println(list1); // 주소가 나와야하는데 실행하면 값이 나온다 -> to String()가 오버라이드됨
// 5 2 3 1 4
System.out.println(list2); // 2 3 1
//R
int a = list1.get(2); //UnBoxing
System.out.println(a); //2번방에 3 들어있음
//D
list1.remove(2); // 5 2 3 1 4
System.out.println(list1); // 5 2 1 4
//U
int change = new Integer(10);
// list1.set(1, new Integer(10)); //5 2 1 4
int after = list1.set(1, change); //5 2 1 4
System.out.println("바뀌기 전:"+after+", 바뀐값 :"+ change);
System.out.println(list1); // 5 10 1 4
//그동안 정렬하느라 고생하셨습니다. 정렬해주는 메서드가 있어요...
Collections.sort(list1); // 오름차순
System.out.println(list1); // 1 4 5 10
}
}
First In Last Out : FILO // 선입후출
push() : 객체추가
pop() : 추출 (사라짐)
search() : 원하는 객체 찾기
peak() : 가장위의 객체를 가져온다 (사라짐)
import java.util.LinkedList;
import java.util.Queue;
import java.util.Stack;
public class StackTest {
public static void main(String[] args) {
Stack<String> s = new Stack<>();
// Stack만의 객체를 만들어야한다.
s.push("0"); // 객체추가
s.push("1"); // 객체추가
s.push("2"); // 객체추가
System.out.println("===================stack====================");
System.out.println(s.pop()); // 꺼내기
System.out.println(s.pop());
System.out.println(s.pop());
// System.out.println(s.pop()); // stack이 비어있는데 꺼내려니까 터진다
while(!s.empty()){ // 반복개수를 모를때 사용하는 녀석
System.out.println(s.pop()); // 비어있는지 확인하고 꺼내고
} // 거꾸로 출력댐 2 1 0
//Queue 는 인터페이스 -> 객체 생성 안댐
Queue<String> qu = new LinkedList<>();
qu.offer("0"); // 객체추가
qu.offer("1");
qu.offer("2");
System.out.println("===================Queue=======================");
while(!qu.isEmpty()){
System.out.println(qu.poll()); //꺼내기 (순서대로 나옴) 0 1 2
}
}
}
import java.util.ArrayList;
import java.util.Collections;
import java.util.HashSet;
import java.util.List;
import java.util.Set;
public class HashSetTest {
public static void main(String[] args) {
// Set은 인터페이스 -> 객체생성 안댐
Set<Integer> set = new HashSet<>();
set.add(5); // 오토박싱
set.add(2);
set.add(3);
set.add(1);
set.add(4);
System.out.println(set); //[1, 2, 3, 4, 5]
for(int i = 0; i< 10 ; i++){
int random = (int)(Math.random()*35+1);
boolean rs = set.add(random);
System.out.println(rs);
}
System.out.println(set);
//정렬 // 모든 컬렉션은 리스트로 변경가능하다 // 오름차순
//1. set -> list
List<Integer> list = new ArrayList<>(set);
Collections.sort(list);
System.out.println(list);
}
}
import java.util.HashMap;
import java.util.Map;
public class MapTest {
public static void main(String[] args) {
Map<String, Integer> param = new HashMap<>();
param.put("져니", 100); // AutoBoxing
param.put("그노", 60);
param.put("경륜", 70);
param.put("오혁", 100);
// System.out.println(param.put("운주", 90)); //인서트겸 업데이트 (C 겸 U)
// System.out.println(param.put("운주", 80)); // 전에 갖고있던 값 90 출력
//R
int hyuk = param.get("오혁");
System.out.println(hyuk); // 100
System.out.println(param); // {오혁=100, 그노=60, 경륜=70, 져니=100}
//D
System.out.println(param.remove("경륜")); //70
System.out.println(param); {오혁=100, 그노=60, 져니=100}
// 회원 "김은대"의 id와 pw 정보 가져오기
Map<String, String> mem = new HashMap<>();
mem.put("mem_id", "a001");
mem.put("mem_pw", "asdfasdf");
System.out.println(mem); //{mem_pw=asdfasdf, mem_id=a001}
String id = mem.get("mem_id");
String pw = mem.get("mem_pw");
System.out.println("아이디 :" + id); //아이디 :a001
System.out.println("패스워드 :" + pw); 패스워드 :asdfasdf
// SELECT*
// FROM MEMBER
// WHERE MEM_ID = mem.get("mem_id")
// AND MEM_PW = mem.get("mem_pw");
}
}