์ผ | ์ | ํ | ์ | ๋ชฉ | ๊ธ | ํ |
---|---|---|---|---|---|---|
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 | 31 |
- SQL
- ์์ฝ์ด
- ์ธํ ๋ฆฌ์ ์ด Web ์ ํ๋ฆฌ์ผ์ด์
- SpringSecurity ๋ก๊ทธ์์
- spring ๊ฒ์ํ ์ญ์
- SpringSecurity ๋ก๊ทธ์ธ
- java
- ๊ฐ์ฒด
- ๊ฐ์ฒด์งํฅ
- ์ฐ์ ์ฐ์ฐ์
- ํจ์
- SQLํ๋
- ๋ฐ๋ณต๋ฌธ
- ์์
- SQL ํ๋
- ๋ฐฐ์ด
- ์ฐ์ฐ์
- ๋น๊ต ์ฐ์ฐ์
- @PreAuthorize("isAuthenticated()")
- StringBuffer
- ์ดํด๋ฆฝ์ค ์ค์น
- ์น์ ํ SQL
- ์คํ๋ง์ํ๋ฆฌํฐ ๋ก๊ทธ์์
- ์๋ฐ์์ ์
- ๋ ผ๋ฆฌ ์ฐ์ฐ์
- ์๋ณ์
- ์ค๋ฒ๋ผ์ด๋ฉ
- ์น์ ํ SQL ํ๋
- ์ค๋ฒ๋ก๋ฉ
- join
- Today
- Total
gi_dor
Java ์ ๋ค๋ฆญ, ์ปฌ๋ ์ , Set , List , Map , Stack ๋ณธ๋ฌธ
๐ธ ์ ๋ค๋ฆญ
- ๋ฐ์ดํฐ ํ์ ์ด ๊ฒฐ์ ๋์ง ์๊ณ , ํ๋ผ๋ฏธํฐ ํ์ (๋ณ์นญ)๋ง ์ง์ ํ๋ค ํ๊ธฐ๋ฐฉ๋ฒ์ < >
- ํด๋์ค ๋ด๋ถ์์ ์ฌ์ฉํ ๋ณ์(๋ฐ์ดํฐ) ์ ํ์ ์ ์ธ๋ถ์์ ์ง์ ํ ์ ์๊ฒ ํ๋ค
- Java ์์๋ ์ ๋ค๋ฆญ์ ์ฌ์ฉํ ๋ , ๊ธฐ๋ณธ๋ฐ์ดํฐ ํ์
์ ์ฌ์ฉํ๋๊ฒ ์๋๋ผ ํด๋น ๊ธฐ๋ณธ ๋ฐ์ดํฐ ํ์
์
๋ํผํด๋์ค๋ฅผ ์ฌ์ฉํด์ผ ํ๋ค - ๊ฐ์ฒด ์์ฑ์์ , ๊ตฌํํด๋์ค , ๊ตฌํ์์ , ๋ฉ์๋ ์คํ์ ๋ณ์นญ์ ์ง์
- ๋ฐ์ดํฐ ํ์ ์ ํด๋์ค ํน์ ์ธํฐํ์ด์ค ํ์ ๋ง ๊ฐ๋ฅ
๐น ์ ๋ค๋ฆญ ํด๋์ค
- ํ๋ผ๋ฏธํฐ ํ์ ์ ํ๋ ์ด์๊ฐ์ง๊ณ ์๋ ํด๋์ค
- ์ฌ๋ฌ ์ข ๋ฅ์ ๊ฐ์ฒด๋ฅผ ๋ค๋ฃจ๋ ํด๋์ค๋ฅผ ์ ๋ค๋ฆญ ํด๋์ค๋ก ์ ์ํ๋ฉด ํ์ ์ ์์ ์ฑ๊ณผ ํ๋ณํ ์ฝ๋๋ฅผ ์ ๊ฑฐํ๋ค
- ์ ๋ค๋ฆญ ํด๋์ค
- ์๋ฃ๊ตฌ์กฐ : Set List Map
- ๋ฐ์ดํฐ ๋ฐ๋ณต์ฒ๋ฆฌ : Iterator , Enumeration - ์ ๋ค๋ฆญ ํด๋์ค ๊ตฌํ์ ์ฃผ์
- Tํ์ ์ ๋ฐฐ์ด์์ฑ ๋ถ๊ฐ
- Tํ์ ์ ํด๋์ค ๋ณ์ ์์ฑ ๋ถ๊ฐ
class Box<T> {
T t; //๊ฐ๋ฅ
static T t; // cv ์ ์ธ๋ถ๊ฐ
T[] data = new T[10]; // Tํ์
๋ฐฐ์ด ์์ฑ๋ถ๊ฐ
public void add(T t){
this.t = t;
}
}
โป ์ ๋ค๋ฆญ ํด๋์ค
public class GenericBox<T> {
// <T> ํ์
ํ๋ผ๋ฏธํฐ๋ผ๊ณ ํ๋ค.
// ํด๋์ค๋ ์ ๋ค๋ฆญ ํ์
๋งค๊ฐ๋ณ์ <T>๋ฅผ ๊ฐ์ง๊ณ ์๋ค
private T data; // Tํ์
์ ๋ฐ์ดํฐ ์ ์ฅํ ์ ์๋ ๋ฉค๋ฒ๋ณ์ data , ์ด๋ค ๋ฐ์ดํฐ์ ๊ฐ์ ์ ์ฅํ ์ ์์
public void add(T data) {
this.data = data;
}
public T get() {
return data;
}
}
public class App2 {
public static void main(String[] args) {
/*
์ ๋ค๋ฆญ์ด ์ ์ฉ๋ Box ํด๋์ค
- ๊ฐ์ฒด ์์ฑ ์์ ์ ํ์
ํ๋ผ๋ฏธํฐ์ ๊ทธ ๊ฐ์ฒด์ ํ์
์ ์ง์ ํ ์ ์๋ค
- ๊ฐ์ฒด ์์ฑ์ ์ง์ ํ ํ์
์ ๊ฐ์ฒด๋ง ์ ์ฅํ ์ ์๋ค
- ์ ์ฅ๋ ๊ฐ์ฒด๋ฅผ ์ฌ์ฉํ ๋ ํ๋ณํ์ด ํ์์๋ค.
*/
// ๊ฐ์ฒด ์์ฑ์์ ์ ํ์
์ ๋ช
์ํจ
GenericBox<String> box1 = new GenericBox<String>();
box1.add("๊ธฐ์ ");
String value1 = box1.get();
// int๊ฐ ์๋ Wrapper ํ์
Integer
GenericBox<Integer> box2 = new GenericBox<>();
box2.add(19);
int value2 = box2.get();
}
public static void main(String[] args) {
// T์ ํ์
์ด String ํด๋์ค๊ฐ ๋๋ค.
Sample<String> s1 = new Sample<String>();
// T์ ํ์
์ด Customer ํด๋์ค๊ฐ ๋๋ค.
Sample<Customer> s2 = new Sample<Customer>();
// T์ํ์
์ด Apple ํด๋์ค๊ฐ ๋๋ค.
// ์ค์ฒฉ๋ ์ ๋ค๋ฆญ ํ์
// Box๊ฐ Apple ๊ฐ์ฒด๋ฅผ ์ ์ฅํ๊ณ Sampleํด๋์ค๊ฐ Box ๊ฐ์ฒด๋ฅผ ๋ค๋ฃจ๊ธฐ ์ํด ์ค์ฒฉ ์ ๋ค๋ฆญ ์ฌ์ฉ
Sample<Box<Apple>> s3 = new Sample<Box<Apple>>();
// T์ ํ์
์ด Object๊ฐ ๋๋ค
Sample s4 = new Sample();
Sample<Object> s5 = new Sample<Object>();
// Sample<int> s4 = new Sample<int>(); // ์ปดํ์ผ ์ค๋ฅ
// T์ ํ์
์ด Integer๊ฐ ๋๋ค.
Sample<Integer> s5 = new Sample<Integer>();
๐น ์ ๋ค๋ฆญ ํด๋์ค๋ฅผ ์ ์ฌ์ฉ ํ๋๊ฑด๋ฐ ?
- ํด๋์ค ๋ด๋ถ์์ ์ฌ์ฉํ ๋ฐ์ดํฐ์ ํ์ ์ ์ธ๋ถ์์ ์ง์ ํ๋ค
- ๊ฐ์ฒด ์์ฑ ์์ ์ ๋ฐ์ดํฐ ํ์ ์ ์ง์
- ์ฌ๊ณผ๋ง ๋ด์์ ์๋ Box ํด๋์ค
public class Box {
private Apple fruit; // ๋ค๋ฅธ๋ฐ์ดํฐ ํ์
์ ์ฅํ ์ ์๊ฒ Apple ํ์
๋ฉค๋ฒ๋ณ์ ์ ์ธ
public void setFruit(Apple fruit) {
this.fruit = fruit;
}
public Apple getFruit() {
return fruit;
}
}
- ์ฌ๋ฌ ๊ณผ์ผ์ ๋ด์์ ์๋ Box ํด๋์ค
public class Box {
private Object fruit; // Object๋ ์ข
๋ฅ ์๊ด ์์ด ๋ค ์ ์ฅ๋ ์ ์๋ค
public void setFruit(Object fruit) {
this.fruit = fruit;
}
public Object getFruit() {
return fruit;
}
}
- ๊ณผ์ผ๋ง ์ ์ฅ๋๋ค๋ ๋ณด์ฅ์ด์๋ค
- ํ ์ข ๋ฅ์ ๊ณผ์ผ๋ง ์ ์ฅ๋๋ค๋ ๋ณด์ฅ๋ ์๋ค
- ๊บผ๋์ ๋ ์ด๋ค๊ณผ์ผ์ด ๋์ฌ์ง ์์ํ ์ ์๋ค
- ๊ฐ์ฒด ์์ฑ์ ์ง์ ๋ ๊ณผ์ผ๋ง ๋ด์์ ์๋ Box ํด๋์ค
public class Box<T> { // Tํ์
ํ๋ผ๋ฏธํฐ
private T fruit; // T๋ก ์ ์ธ๋์์ผ๋ฏ๋ก Box ๊ฐ์ฒด๋ด์์ Tํ์
๋ฐ์ดํฐ ์ ์ฅ๊ฐ๋ฅ
public void setFruit(T fruit) {
this.fruit = fruit;
}
public T getFruit() {
return fruit;
}
}
// ์์ ์ฑ์ ์ง๋ฅผ ํ ์ ์๊ฒ๋๋ค
// ๋๋ค๋ฅธ ์๋ก class Box<String> ์ฌ์ฉ ์ ๋ฌธ์์ด ๋ฐ์ดํฐ๋ง ์ ์ฅํ ์ ์๋ค
๐ ์ ๋ค๋ฆญ์ ์ฌ์ฉํด ํด๋์ค๋ฅผ ๊ตฌํํ ๊ฒฝ์ฐ์ ์ด๋ก์ด ์
- ์ํ์ง ์๋ ์๋ฃํ์ ๊ฐ์ด ์ ๋ ฅ๋๋ ๊ฒ์ ์ปดํ์ผ ์์ ์ ์์ ์๋ค
- ๊ฐ์ ๊บผ๋ผ ๋ ํ์ ํ๋ณํ ํ์ง ์์๋๋๋ค
๐น ์์ผ๋ ์นด๋
- ์ ๋ค๋ฆญ ํ์ ์ ์ฌ์ฉํ ๋ ๋ถํน์ ํ ํ์ ์ ๋ํ๋ด๋๋ฐ ์ฐ์ธ๋ค
- ์๋ฅผ๋ค๋ฉด List<?> ๋ ์ด๋ค ํ์ ์์์๋ ํฌํจํ ์ ์๋ List๋ฅผ ๋ํ๋ธ๋ค
- ํน์ ํ์ ์ ์์ง ๋ชปํ ๋ ์ฐ์ธ๋ค
ArrayList<? extends Product> list = new ArrayList<Tv>();
ArrayList<? extends Product> list = new ArrayList<SmartPhone>();
// list ์ฐธ์กฐ๋ณ์๋ Product ๋ฐ ๊ทธ ์์์ด ์ ๋ค๋ฆญํ์
์ผ๋ก ์ง์ ๋ ArrayList๋ฅผ ์ฐธ์กฐํ ์ ์๋ค.
<?>
- ์ ํ์์
- ํ์
ํํ๋ฏธํฐ์ ๊ตฌ์ฒด์ ์ธ ํ์
์ผ๋ก ๋ชจ๋ ํด๋์ค , ๋ชจ๋ ์ธํฐํ์ด์ค ์ ์
<? extendx ์์ํ์
>
- ์์ ํด๋์ค ์ ํ
- ํ์
ํ๋ผ๋ฏธํฐ์ ๊ตฌ์ฒด์ ์ธ ํ์
์ผ๋ก ์์ํ์
ํน์ ์ง์ ๋
์์ ํ์
์ ํ์ ํ์
๋ง ๊ฐ๋ฅ
<? super ํ์ํ์
>
- ํ์ ํด๋์ค ์ ํ
- ํ์
ํ๋ผ๋ฏธํฐ์ ๊ตฌ์ฒด์ ์ธ ํ์
์ผ๋ก ํ์ํ์
ํน์ ์ง์ ๋ ํ์ํ์
์ ์์ํ์
๋ง ๊ฐ๋ฅํ๋ค
class Product {
// Product ํด๋์ค ๋ด์ฉ
}
class Tv extends Product {
// Tv ํด๋์ค ๋ด์ฉ
}
class SmartPhone extends Product {
// SmartPhone ํด๋์ค ๋ด์ฉ
}
ArrayList<Tv> tvList = new ArrayList<>();
tvList.add(new Tv());
ArrayList<SmartPhone> phoneList = new ArrayList<>();
phoneList.add(new SmartPhone());
ArrayList<? extends Product> list1 = tvList; // Tv ํ์
์ ArrayList๋ฅผ ์ํ ์์ผ๋์นด๋์ ํ ๋น
ArrayList<? extends Product> list2 = phoneList; // SmartPhone ํ์
์ ArrayList๋ฅผ ์ํ ์์ผ๋์นด๋์ ํ ๋น
for (Product p : list1) {
// Product ๊ฐ์ฒด ๋๋ Product ํ์ ํด๋์ค ๊ฐ์ฒด๋ฅผ ์ฝ์ ์ ์์
}
for (Product p : list2) {
// Product ๊ฐ์ฒด ๋๋ Product ํ์ ํด๋์ค ๊ฐ์ฒด๋ฅผ ์ฝ์ ์ ์์
}
๐ธ ์ปฌ๋ ์ ํ๋ ์์ํฌ
๐น ์ปฌ๋ ์ ์ธํฐํ์ด์ค Collection<E>
- ๋ชจ๋ ์๋ฃ๊ตฌ์กฐ์ ์ต์์ ์ธํฐํ์ด์ค
boolean add(E e)
// ์๋ฃ๊ตฌ์กฐ์ ์๋ก์ด ์์๋ฅผ ์ถ๊ฐํ๋ค.
boolean addAll(Collection<? extends E> c)
// ์๋ฃ๊ตฌ์กฐ์ ๋ค๋ฅธ ์๋ฃ๊ตฌ์กฐ์ ๋ชจ๋ ์์๋ฅผ ์ถ๊ฐํ๋ค.
void clear()
// ์๋ฃ๊ตฌ์กฐ์ ๋ชจ๋ ์์๋ฅผ ์ญ์ ํ๋ค.
boolean contains(Object e)
// ์๋ฃ๊ตฌ์กฐ์ ์ง์ ๋ ๊ฐ์ฒด๊ฐ ์กด์ฌํ๋์ง ์กฐํํ๋ค.
boolean isEmpty()
// ์๋ฃ๊ตฌ์กฐ๊ฐ ๋น์๋์ง ์กฐํํ๋ค.
Iterator<E> iterator()
// ์๋ฃ๊ตฌ์กฐ์ ๊ฐ ์์๋ฅผ ๋ฐ๋ณตํด์ ์ถ์ถํด์ฃผ๋ ๋ฐ๋ณต์๊ฐ์ฒด๋ฅผ ๋ฐํํ๋ค.
boolean remove(Object e)
// ์๋ฃ๊ตฌ์กฐ์์ ์ง์ ๋ ๊ฐ์ฒด๋ฅผ ์ญ์ ํ๋ค.
int size()
// ์๋ฃ๊ตฌ์กฐ์ ์ ์ฅ๋ ์์์ ๊ฐฏ์๋ฅผ ๋ฐํํ๋ค.
Object[] toArray()
// ์๋ฃ๊ตฌ์กฐ์ ์ ์ฅ๋ ์์๋ฅผ ๋ฐฐ์ด๋ก ๋ฐํํ๋ค.
๐น Set
- ์ค๋ณต์ ํ์ฉํ์ง ์๋ ์ธํฐํ์ด์ค๋ค ( ๋์ผํ ์์๋ฅผ ์ฌ๋ฌ๋ฒ ์ถ๊ฐํด๋ ์ค๋ณต ์ ์ฅ๋์ง ์๋๋ค)
- ์์๋ฅผ ๋ณด์ฅ ํ์ง ์๋๋ค ( ์์๋ฅผ ์ ๊ฒฝ์ฐ์ง ์๊ณ ๋จ์ํ ์ค๋ณต ์ ๊ฑฐ ์ฉ์ผ๋ก ์ฐ๋ฉด ๋ฑ๋ฆฌ๋ค)
- ๊ณ ์ ํ ์์๋ง์ ์ ์ฅํ๋ค
- ์์์ ๋๋ฑ์ฑ(equality)์ ๊ธฐ์ค์ผ๋ก ํ๋จ ํ๋ค ( equals() , hashCode() ๋ฉ์๋ ์์ฐ์ )
- HashSet - ์ค๋ณตํ์ฉ ์ํจ ์ค๋ณต์ ๊ฑฐ , ์์ ๋ณด์ฅ ์ํจ
- TreeSet - ์ค๋ณตํ์ฉ ์ํจ ์ค๋ณต์ ๊ฑฐ , ์์ธ์ ์ผ๋ก ์ ๋ ฌํจ ์์์ ํฌ๊ธฐ ๋๋ ๋น๊ต ๊ธฐ์ค์ ๋ฐ๋ผ ๊ฒฐ์ ๋จ
โป TreeSet
- Set<E> ๊ตฌํ ํด๋์ค
- ์ค๋ณต๋ ๊ฐ์ฒด์ ์ ์ฅ์ ํ์ฉํ์ง ์๋๋ค
- ๊ฐ์ฒด๊ฐ ์ ์ฅ๋ ๋ ์ค๋ฆ์ฐจ์์ผ๋ก ์ ๋ ฌ๋์ด ์ ์ฅ๋๋ค
- TreeSet์ ์ ์ฅํ๋ ๊ฐ์ฒด๋ ๋ฐ๋์ Comparable<E>๋ฅผ ์ธํฐํ์ด์ค๋ฅผ ๊ตฌํํ ๊ฐ์ฒด์ฌ์ผ ํ๋ค
- String Wrapper ํด๋์ค๋ Comparable<E> ์ธํฐํ์ด์ค๋ฅผ ๊ตฌํํ๊ณ ์๋ค
package Java.collection;
import java.util.TreeSet;
public class TreeSetApp1 {
public static void main(String[] args) {
TreeSet<String> set = new TreeSet<String>();
set.add("๋ํ");
set.add("๊ฐ๋ค์ค");
set.add("์ํจ์");
set.add("๋ด์ถ");
set.add("ํ๋");
// ์์ ์์๋ก ์ ๋ ฌ๋ ๊ฑธ ํ์ธํ ์ ์์
for (String name : set) {
System.out.println(name);
}
}
}
// ์ถ๋ ฅ
/*
๊ฐ๋ค์ค
๋ํ
๋ด์ถ
์ํจ์
ํ๋
*/
public class TreeSetApp2 {
public static void main(String[] args) {
// ๋ก๋ ๋ฒํธ ์ถ์ถํ๊ธฐ
// 1. ๋ฒํธ์ถ์ถ
// 2. ์ค๋ณต ์ฒดํฌ - Set ์ผ๋ก ์ฒ๋ฆฌ
// 3. ์ ์ฅ
// 4. ์ ๋ ฌ - TreeSet ์ฒ๋ฆฌ
Random random = new Random();
TreeSet<Integer> lotto = new TreeSet<>();
// - TreeSet<E> ์ฌ์ฉ
// ์ค๋ณต ๊ฐ์ ์ ์ฅํ์ง ์์ , ์๋์ ๋ ฌ ์ค๋ฆ์ฐจ์์ผ๋ก ํด์ค ๊ฐ๊ฟ
while (true) {
int num = random.nextInt(45) + 1;
// ๋ณ์ lotto ์ ๋ด์
lotto.add(num);
if (lotto.size() == 6) {
break;
}
}
System.out.println(lotto);
}
}
โป HashSet
- Set<E> ์ธํฐํ์ด์ค๋ฅผ ๊ตฌํํ ์๋ฃ๊ตฌ์กฐ ๊ตฌํ ํด๋์ค
- ์ค๋ณต๋ ๊ฐ์ฒด์ ์ ์ฅ์ ํ์ฉํ์ง ์๋ ์๋ฃ๊ตฌ์กฐ ๊ตฌํ ํด๋์ค
- ๊ฐ์ฒด์ ๋์ผ์ฑ ๋น๊ต๋ฅผ ๊ตฌํํ๊ธฐ ์ํด equals() , hashcode()
๋ฉ์๋๋ฅผ์ฌ ์ ์ํ ํ์๊ฐ ์๋ค (HashSet<E> ์ ์ ์ฅ๋๋ ๊ฐ์ฒด๊ฐ ๊ตฌํ ํด์ผํจ) - String Wrapper ํด๋์ค๋ equals() ์ hashCode()๊ฐ ์ด๋ฏธ ์ฌ์ ์ ๋์ด์๋ค
package Java.collection;
import java.util.HashSet;
import java.util.stream.Stream;
public class HashSetApp1 {
public static void main(String[] args) {
// String ๊ฐ์ฒด๋ฅผ ์ ์ฅํ๋ HashSet ๊ฐ์ฒด ์์ฑ
HashSet<String> set = new HashSet<String>();
// boolean add(E e) ๋ฉ์๋๋ฅผ ์ฌ์ฉํด HashSet ๊ฐ์ฒด์ String ๊ฐ์ฒด์ ์ ์ฅํ๊ธฐ
set.add("ํ๋");
set.add("๋");
set.add("์
");
set.add("๋ท");
set.add("๋ค์ฏ");
set.add("์ฌ์ฏ");
set.add("์ฌ์ฏ"); // ์ค๋ณต ์ ์ฅ์๋
set.add("์ฌ์ฏ"); // ์ค๋ณต ์ ์ฅ์๋
set.add("์ฌ์ฏ"); // ์ค๋ณต ์ ์ฅ์๋
// int size() ๋ฉ์๋๋ฅผ ์ฌ์ฉํด HahSet ๊ฐ์ฒด์ ์ ์ฅ๋ ๊ฐ์ฒด ๊ฐฏ์ ์กฐํ
int size = set.size();
System.out.println("์ ์ฅ๋ ๊ฐ์ฒด์ ๊ฐฏ์ : " + size); // 6 ์ถ๋ ฅ๋จ
// ํฅ์๋ for๋ฌธ์ ์ฌ์ฉํด HashSet ๊ฐ์ฒด์ ์ ์ฅ๋ ๊ฐ์ฒด๋ค์ ํ๋์ฉ ์ฒ๋ฆฌํ๊ธฐ
// HashSet์ index๊ฐ ์๋ค , ์ผ๋ฐ for๋ฌธ์ผ๋ก HashSet๊ฐ์ฒด์ ์ ์ฅ๋ ๊ฐ๋ค์ ์ฒ๋ฆฌํ ์ ์๋ค
for (String name : set) {
System.out.println(name);
}
// Stream ์ ์ฌ์ฉํด์ HashSet๊ฐ์ฒด์ ์ ์ฅ๋ ๊ฐ์ฒด๋ค์ ํ๋์ฉ ์ฒ๋ฆฌ
System.out.println("### Stream์ ํ์ฉํด HashSet๊ฐ์ฒด์ ์ ์ฅ๋ ๊ฐ์ฒด ์ฒ๋ฆฌ");
Stream<String> stream = set.stream();
stream.forEach((String value) -> System.out.println(value));
// public void Consumer<String>(){
// public void accept(String value){
// System.out.println(value);
// }
// });
// boolean contains(Object o)๋ฅผ ์ฌ์ฉํด ๊ฐ์ฒด์ ์ ์ฅ์ฌ๋ถ๋ฅผ ์กฐํ
boolean isExist = set.contains("๋");
System.out.println("์กด์ฌ์ฌ๋ถ : " + isExist);
// boolean isEmpty() ๋ฅผ ์ฌ์ฉํด HashSet๊ฐ์ฒด๊ฐ ๋น์ด์๋์ง ์กฐํ
boolean isEmpty = set.isEmpty();
System.out.println("๋น์ด์๋๊ฐ ? :" + isEmpty);
// void clear() HashSet๊ฐ์ฒด์ ์ ์ฅ๋ ๋ชจ๋ ๊ฐ์ฒด ์ญ์ ํ๊ธฐ
set.clear();
System.out.println("๋น์ด์๋๊ฐ 2 ? : " + set.isEmpty());
}
}
package Java.collection;
import java.util.HashSet;
import java.util.Objects;
public class HashSetApp2 {
public static void main(String[] args) {
HashSet<User> set = new HashSet<>();
set.add(new User("kim", "๊น์ ์ "));
set.add(new User("Han", "ํ๋ช
ํ"));
set.add(new User("Han", "ํ๋ช
ํ"));
set.add(new User("Han", "ํ๋ช
ํ"));
set.add(new User("ryu", "๋ฅ์น๋ฃก"));
set.add(new User("shin", "์ ๋ผ"));
set.add(new User("kahn", "์นธ ์ผ์"));
set.add(new User("ahn", "์์ค๊ทผ"));
for (User u : set) {
System.out.println(u.id + ", " + u.name + ", " + u);
}
}
static class User {
String id;
String name;
public User(String id, String name) {
this.id = id;
this.name = name;
}
/*
hashCode() ์ equals() ๋ฉ์๋๋ฅผ ์ฌ์ ์ํด์
id ๊ฐ์ด ๊ฐ์ User ๊ฐ์ฒด๋ ๊ฐ์ ๊ฐ์ฒด๋ก ํ๋จํ๋๋ก ํ๋ค.
*/
@Override
public boolean equals(Object o) {
if (this == o) {
return true;
}
if (o == null || getClass() != o.getClass()) {
return false;
}
User user = (User) o;
return Objects.equals(id, user.id);
}
@Override
public int hashCode() {
return Objects.hash(id); // id๋ก๋ง hashCode ๋ง๋ค์ด์ง , id๊ฐ ๊ฐ๋ค๋ฉด hashCode๊ฐ ๊ฐ๋ค๋๊ฒ์ ์๋ฏธํจ
}
}
}
// ์ถ๋ ฅ ๊ฒฐ๊ณผ
/*
Han, ํ๋ช
ํ, Java.collection.HashSetApp2$User@11a94
ahn, ์์ค๊ทผ, Java.collection.HashSetApp2$User@17946
kahn, ์นธ ์ผ์, Java.collection.HashSetApp2$User@321cfb
ryu, ๋ฅ์น๋ฃก, Java.collection.HashSetApp2$User@1bb2d
shin, ์ ๋ผ, Java.collection.HashSetApp2$User@35da59
kim, ๊น์ ์ , Java.collection.HashSetApp2$User@19eee
*/
๐น List
- List<E> ์ธํฐํ์ด์ค๋ฅผ ๊ตฌํํ ํด๋์ค
- ๊ฐ๋ณ๊ธธ์ด ๋ฐฐ์ด์ ํ์ฉํด List<E> ์ธํฐํ์ด์ค๋ฅผ ๊ตฌํ ํ๋ค
- ์์๊ฐ ๋ณด์ฅ๋๋ ์๋ฃ๊ตฌ์กฐ ๊ตฌํ ํด๋์ค
- ํน์ ์์น์ ์ ์ฅํ๊ธฐ , ์ญ์ ํ๊ธฐ , ๊บผ๋ด๊ธฐ
- ๊ฐ์ฅ ๋ง์ด ์ฌ์ฉ๋๋ ์๋ฃ๊ตฌ์กฐ ๊ตฌํํด๋์ค
๐น ๊ตฌํ ํด๋์ค
- ArrayList<E> : ๊ฐ์ฅ ๋ง์ด ์ฌ์ฉํ๋ List๊ตฌํ ํด๋์ค(์ ์ฒด ์๋ฃ๊ตฌ์กฐ ํด๋์ค ์ค์์ ๊ฐ์ฅ ๋ง์ด ์ฌ์ฉ)
- LinkedList<E> : ๋๋ธ๋งํฌ๋ก List๋ฅผ ๊ตฌํํ ํด๋์ค(์์์ ์ถ๊ฐ/์ญ์ ์ฑ๋ฅ์ด ์ฐ์ํ๋ค.)
- Vector<E> : ArrayList์ ์ ์ฌํ๋ List๊ตฌํ ํด๋์ค(๋ฉํฐ์ค๋ ๋ ํ๊ฒฝ์ ์์ ํ๋ค.)
- Stack<E> : LIFO(Last-In-First-Out)์ผ๋ก ๊ตฌํ๋ List๊ตฌํ ํด๋์ค
// String๊ฐ์ฒด๋ฅผ ์ฌ๋ฌ ๊ฐ ์ ์ฅํ๋ ArrayList๊ฐ์ฒด ์์ฑํ๊ธฐ
List<String> list1 = new ArrayList<String>();
// ์ค์๋ฅผ ์ฌ๋ฌ ๊ฐ ์ ์ฅํ๋ ArrayList๊ฐ์ฒด ์์ฑํ๊ธฐ
List<Double> list2 = new ArrayList<Double>();
// Person๊ฐ์ฒด๋ฅผ ์ฌ๋ฌ ๊ฐ ์ ์ฅํ๋ ArrayList๊ฐ์ฒด ์์ฑํ๊ธฐ
List<Person> list3 = new ArrayList<Person>();
๐น ArrayList<E> ํ์ฉํ๊ธฐ
public class Person {
private int no;
private String name;
public Person() {}
public Person(int no, String) {
this.no = no;
this.name = name;
}
public int getNo() {
return no;
}
public String name() {
return name;
}
}
public static void main(String[] args) {
// Person๊ฐ์ฒด๋ฅผ ์ฌ๋ฌ ๊ฐ ์ ์ฅํ ์ ์๋ ArrayList๊ฐ์ฒด ์
List<Person> personList = new ArrayList<Person>();
// ArrayList๊ฐ์ฒด์ Person๊ฐ์ฒด์์ฑํ๊ธฐ
personList.add(new Person(100, "๊น์ ์ "));
personList.add(new Person(200, "๊ฐ๊ฐ์ฐฌ"));
personList.add(new Person(300, "์ด์์ "));
personList.add(new Person(400, "๋ฅ๊ด์"));
// ArrayList๊ฐ์ฒด์ ์ ์ฅ๋ Person๊ฐ์ฒด์ ๊ฐฏ์๋ฅผ ์กฐํํ๊ธฐ
int count = personList.size();
System.out.println("์ ์ฅ๋ ๊ฐฏ์: " + count); // 4๊ฐ ์ถ๋ ฅ๋จ
// ํฅ์๋ for๋ฌธ์ ์ฌ์ฉํด์ ArrayList๊ฐ์ฒด์ ์ ์ฅ๋ Person๊ฐ์ฒด๋ฅผ ์ํํ๊ธฐ
for (Person person : personList) {
int no = person.getNo();
String name = person.getName();
System.out.println("๋ฒํธ:" + no + ", ์ด๋ฆ:" + name);
}
// ArrayList๊ฐ์ฒด์์ 0๋ฒ์ ์ ์ฅ๋ Person๊ฐ์ฒด ์กฐํํ๊ธฐ
Person person0 = personList.get(0);
// ArrayList๊ฐ์ฒด์์ 2๋ฒ์ ์นธ์ ์ ์ฅ๋ Person๊ฐ์ฒด ์ญ์ ํ๊ธฐ
personList.remove(2)
// ArrayList๊ฐ์ฒด์์ 1๋ฒ์ ์ ์ฅ๋ ๊ฐ์ฒด๋ฅผ ์๋ก์ด Person๊ฐ์ฒด๋ก ๋ณ๊ฒฝํ๊ธฐ
personList.set(1, new Person(500, "์์ค๊ทผ"));
// ArrayList๊ฐ์ฒด์ ์ ์ฅ๋ ๋ชจ๋ ๊ฐ์ฒด ์ญ์ ํ๊ธฐ
personList.clear()
}
๐น Stack<E> ๊ฐ์ฒด ์ฌ์ฉ
public static void main(String[] args) {
Stack<String> stack = new Stack<String>();
// Stack๊ฐ์ฒด์ ๋ฌธ์์ด ์ ์ฅํ๊ธฐ
stack.push("๊น์ ์ ");
stack.push("๊ฐ๊ฐ์ฐฌ");
stack.push("์ด์์ ");
// Stack๊ฐ์ฒด์์ ๋งจ ์์ ์๋ ๊ฐ์ฒด๋ฅผ ์กฐํํ๋ค.
String value1 = stack.peek(); // ์ด์์
String value2 = stack.peek(); // ์ด์์
String value3 = stack.peek(); // ์ด์์
// Stack๊ฐ์ฒด์์ ๋งจ ์์ ์๋ ๊ฐ์ฒด๋ฅผ ๊บผ๋ธ๋ค.(Stack์์ ํด๋น ๊ฐ์ฒด๋ ์ญ์ ๋๋ค.)
String value1 = stack.pop(); // ์ด์์
String value2 = stack.pop(); // ๊ฐ๊ฐ์ฐฌ
String value3 = stack.pop(); // ๊น์ ์
// Stack๊ฐ์ฒด๊ฐ ๋น์ด์๋์ง ํ์ธํ๊ธฐ
boolean result = stack.isEmpty(); // true๊ฐ ๋ฐํ๋๋ค.
}
void add(int index, E e)
// ์ง์ ๋ ์์น์ ์์๋ฅผ ์ ์ฅํ๋ค.
E get(int index)
// ์ง์ ๋ ์์น์ ์์๋ฅผ ๊บผ๋ธ๋ค
E remove(int index)
// ์ง์ ๋ ์์น์ ์์๋ฅผ ์ญ์ ํ๋ค.
E set(int index, E e)
// ์ง์ ๋ ์์น์ ์์๋ฅผ ์ ์์๋ก ๊ต์ฒดํ๋ค.
๐น Map
- Map < K ,V > ๋ ๋ฐ์ดํฐ๋ฅผ Key์ Value์ ์์ผ๋ก ์ฐ๊ฒฐ์ง์ด์ ์ ์ฅํ๋ ๊ฐ์ฒด
- Map <K,V> ๊ฐ์ฒด๋ Entry < K ,V> ๊ฐ์ฒด๋ฅผ ์ฌ๋ฌ๊ฐ ์ ์ฅํ๋ ๊ฐ์ฒด๋ค
- Key๋ ์ฃผ๋ณต์ด ๋ ์ ์์ผ๋ฉฐ ํ์ ์ ๋์ฒด๋ก String Integer Long ํ์ ์ด ์ฃผ๋ก ์ฌ์ฉ๋๋ค
- Value๋ ์ค์ ๋ก Map์ ์ ์ฅํ ์ ๋ณด๋ฅผ ๊ฐ์ง๊ณ ์๋ ๊ฐ์ฒด๋ค
๐ Key์ Value ํ์์ ํ๋์ Entery ๋ผ๊ณ ์นญํ๋ฉฐ , ์ด Entry๋ค์ด ์ฌ๋ฌ๊ฐ๊ฐ Map์ด๋ผ ์นญํ๋ค
Ex.
Key | Value | Map < K ,V > |
ํ๋ฒ | ํ์ ๊ฐ์ฒด | Map < Integer , Student > |
์ฃผ๋ฌธ๋ฒํธ | ์ฃผ๋ฌธ์ ๋ณด ๊ฐ์ฒด | Map < Long , Order > |
์ฌ์ฉ์ ์์ด๋ | ์ฌ์ฉ์ ์ ๋ณด ๊ฐ์ฒด | Map < String , User > |
์ํ๋ฒํธ | ์ํ์ ๋ณด ๊ฐ์ฒด | Map < Integer , Product > |
V put(K key, V value)
// Map๊ฐ์ฒด์ key, value์ ์์ ์ ์ฅํ๋ค.
V get(Object key)
// Map๊ฐ์ฒด์์ ์ง์ ๋ key์ ํด๋นํ๋ value๋ฅผ ์กฐํํ๋ค.
V remove(Object key)
// Map๊ฐ์ฒด์์ ์ง์ ๋ key์ ํด๋นํ๋ value๋ฅผ ์ญ์ ํ๋ค.
void clear()
// Map๊ฐ์ฒด์ ์ ์ฅ๋ ๋ชจ๋ key, value์ ์์ ์ญ์ ํ๋ค.
int size()
// Map๊ฐ์ฒด์ ์ ์ฅ๋ Key,value์์ ๊ฐฏ์๋ฅผ ๋ฐํํ๋ค.
boolean isEmpty()
// Map๊ฐ์ฒด๊ฐ ๋น์ด์์ผ๋ฉด true๋ฅผ ๋ฐํํ๋ค.
boolean containsKey(Object key)
// Map๊ฐ์ฒด์ ์ง์ ๋ key๊ฐ ํฌํจ๋์ด ์๋์ง ์ฌ๋ถ๋ฅผ ๋ฐํํ๋ค.
boolean containsValue(Object value)
// Map๊ฐ์ฒด์ ์ง์ ๋ value๊ฐ ํฌํจ๋์ด ์๋์ง ์ฌ๋ถ๋ฅผ ๋ฐํํ๋ค.
Set<Key> keySet()
// Map๊ฐ์ฒด์ ๋ชจ๋ key๋ฅผ Set๊ฐ์ฒด์ ๋ด์์ ๋ฐํํ๋ค.
Collection<V> values()
// Map๊ฐ์ฒด์ ๋ชจ๋ value๋ฅผ Collection๊ฐ์ฒด์ ๋ด์์ ๋ฐํํ๋ค.
Set<Map.Entry<K, V>> entrySet()
// Map์ ์ ์ฅ๋ ๋ชจ๋ Entry<K, V>๋ฅผ Set์ ๋ด์์ ๋ฐํํ๋ค.
// key : ์์ด๋ , value : ๊ณ ๊ฐฑ๋ช
์ ์์ผ๋ก Entry๊ฐ ๊ตฌ์ฑ๋๋ HashMap๊ฐ์ฒด ์์ฑํ๊ธฐ
Map<String, String> map1 = new HashMap<String, String>();
// Map ๊ฐ์ฒด์ ์๋ก์ด Entry ์ ์ฅ
map1.put("hong", "ํ๊ธธ๋");
map1.put("kim", "๊น์ ์ ");
map1.put("Gil", "๊ธธํ๋ฏธ");
map1.put("Chuck", "์ฒ๊ณ๊ด");
System.out.println(map1); // {hong=ํ๊ธธ๋, Chuck=์ฒ๊ณ๊ด, Gil=๊ธธํ๋ฏธ, kim=๊น์ ์ }
String value1 = map1.get("Gil");
String value2 = map1.get("chuck");
String value3 = map1.get("Han");
System.out.println(value1); // ๊ธธํ๋ฏธ
System.out.println(value2); // null - ๋์๋ฌธ์ ํ๋ฆผ
System.out.println(value3); // null - ์กด์ฌํ์ง ์์
// map ๊ฐ์ฒด์์ ์ง์ ๋ key์ ํด๋นํ๋ Entry ์ญ์
map1.remove("hong");
// ์ด๋ฏธ ์กด์ฌํ๋ key๋ก ๋ค์ ๊ฐ์ ์ ์ฅํ๋ฉด ๊ธฐ์กด ๊ฐ์ ๋ฎ์ด์ด๋ค
map1.put("kim", "๊น์ข์ง");
System.out.println(map1); // {Chuck=์ฒ๊ณ๊ด, Gil=๊ธธํ๋ฏธ, kim=๊น์ข์ง}
๐น Map ๊ฐ์ฒด
Map<string,Object> map = new HashMap<>()
ํด๋น ์ฝ๋ ๊ฐ์ ํํ๋ก Map๊ฐ์ฒด๋ฅผ ์์ฑํ๋ฉด key , value์ ์์ผ๋ก ๋ค์ํ ํ์ ์ ๊ฐ์ ์ ์ฅ ํ ์ ์๋ค
๐ ์ฒ๋ฆฌํ ์ ๋ณด์ ํํ๊ฐ ๋ค์ํ ๊ฒฝ์ฐ (๊ฐ์ ๊ฐฏ์ , ๊ฐ์ ์ข ๋ฅ๊ฐ ๋ค์ํ๋ ๋ณํ๋ ์ ๋ณด ๋ค๋ฃฐ ๋)
if๋ฌธ์ ์กฐ๊ฑด์์์ ๋น๊ต ๊ฐ์ผ๋ก ์ด์ฉ๋๋ ๊ฐ์ Map ๊ฐ์ฒด์ key๋ก ํ์ฉในํ๋ฉด if๋ฌธ์ ์ ๊ฑฐ ํ ์ ์๋ค
Map < String , Double > map = new HashMap<>();
map.put("gold" , 0.05);
map.put("silver" , 0.02);
map.put("bronze" , 0.01);
// ๊ณ ๊ฐ๋ฑ๊ธ๊ณผ ๊ตฌ๋งค๊ธ์ก์ ์ ๋ฌ๋ฐ์ ํฌ์ธํธ ๋ฐํ
// ํฌ์ธํธ ์ ๋ฆฝ๋ฅ ์ ๊ณ ๊ฐ๋ฑ๊ธ์ ๋ฐ๋ผ ๋ฌ๋ผ์ง๋๋ฐ Map์ ํฌ์ธํธ ๋ฑ๊ธ์ key , ์ ๋ฆฝ๋ฅ ์ value๋ก ์ ์ฅ
// ๋งต์์ ๊ณ ๊ฐ๋ฑ๊ธ์ key๋ก ์ ๋ฆฝ๋ฅ ์ ์กฐํํ ์ ์๋ค
public int getPoint(String grade, int orderPrice) {
double pointDepositRate = map = get(grade);
return (int) (orderPrice * pointDepositRate);
}
// ์ฌ๋ฌ๊ฐ์ ๊ฐ์ ๊ฐ์ ๊ฐ์ง ๊ฒ๋ค ๋ผ๋ฆฌ ๋ถ๋ฅ
// Ex)
// ๊ณ ๊ฐ์ด๋ฆ์์ ์ฑ์จ๋ณ ์ธ์์ ๊ณ์ฐํ๊ธฐ
// ์ํ๋ชฉ๋ก์์ ์ํ ์นดํ
๊ณ ๋ฆฌ๋ณ๋ก ์ํ ์ ๊ณ์ฐ
// ์ฐ์ค๋ฌธ์์ ๋จ์ด๋ณ ๋น๋์ ๊ณ์ฐํ๊ธฐ
// VO ๊ฐ์ฒด๋ฅผ ๋์ฒดํ๋ Map๊ฐ์ฒด
// ์ํ ์ ๋ณด๋ฅผ ์ ์ฅํ๋ Product ํด๋์ค
/* public class Product{
private int no;
private String name;
private String maker;
private int price;
private double discountRate;
}
Product item1 = new Product(100,"galaxy22","samsung",990000,0.05);
Product item2 = new Product(100,"galaxy23","samsung",990000,0.05);
Product item3 = new Product(100,"galaxy24","samsung",990000,0.05);
Product item4 = new Product(100,"galaxy25","samsung",990000,0.05);
// ์ํ ์ ๋ณด๋ฅผ ์ ์ฅํ๋ Map ๊ฐ์ฒด
Map<String,Object> item = new HashMap<>();
item.put("no",100);
item.put("name","galaxy22");
item.put("maker","samsung");
item.put("price",990000);
item.put("discountRate",0.05);
*/
Map<String, Object> item2 = new HashMap<String, Object>();
item2.put("no", 101);
item2.put("name", "galaxt22");
item2.put("maker", "samsung");
item2.put("price", 900000);
item2.put("discountRate", 0.05);
// ์ํ์ ๋ณด๊ฐ ์ ์ฅ๋ Map๊ฐ์ฒด๋ฅผ ์ฌ๋ฌ๊ฐ ์ ์ฅํ๋ List๊ฐ์ฒด ์์ฑ
List<Map<String, Object>> items = new ArrayList<>();
items.add(item1);
items.add(item2);
// List ๊ฐ์ฒด์ ๋ชจ๋ ์ ๋ณด ์ถ๋ ฅ
for (Map<String, Object> map : items) {
int no = (Integer) map.get("no");
String name = (String) map.get("name");
String maker = (String) map.get("maker");
int price = (Integer) map.get("price");
double discountRate = (double) map.get("discountRate");
System.out.println("๋ฒํธ : " + no);
System.out.println("์ด๋ฆ : " + name);
System.out.println("์ ์กฐ์ฌ : " + maker);
System.out.println("๊ฐ๊ฒฉ : " + price);
System.out.println("ํ ์ธ์จ : " + discountRate);
System.out.println();
System.out.println();
}
public static void main(String[] args) {
Map<String, MessageSender> map = new HashMap<String, HashMapApp4.MessageSender>();
map.put("sms", new SmsMessageSender());
map.put("Email", new EmailMessageSender());
map.put("kakao", new KakaotalkMessageSender());
User user1 = new User();
user1.name = "ํ๊ธธ๋";
user1.senderTypes = new String[]{"sms", "kakao"};
System.out.println("###" + user1.name + "์๊ฒ ์ด๋ฒคํธ ๋ฉ์์ง ์ ์กํ๊ธฐ");
for (String type : user1.senderTypes) { // type์๋ "sms", "kakao"๊ฐ ์ ๋ฌํ๋ค
MessageSender ms = map.get(type);
ms.send();
}
}
static class User {
String name; // ๊ณ ๊ฐ๋ช
String[] senderTypes; // ๊ณ ๊ฐ์ด ์์ ๋์ ๋ฉ์์ง ์์ ๋ฐฉ๋ฒ๋ค
}
static interface MessageSender {
void send();
}
static class SmsMessageSender implements MessageSender {
public void send() {
System.out.println("SMS๋ก ๋ฉ์์ง๋ฅผ ๋ณด๋ธ๋ค.");
}
}
static class EmailMessageSender implements MessageSender {
public void send() {
System.out.println("Email๋ก ๋ฉ์์ง๋ฅผ ๋ณด๋ธ๋ค");
}
}
static class KakaotalkMessageSender implements MessageSender {
public void send() {
System.out.println("์นด์นด์คํก์ผ๋ก ๋ฉ์์ง๋ฅผ ๋ณด๋ธ๋ค");
}
}
Map < String , Double > map = new HashMap<>();
map.put("gold" , 0.05);
map.put("silver" , 0.02);
map.put("bronze" , 0.01);
// ๊ณ ๊ฐ๋ฑ๊ธ๊ณผ ๊ตฌ๋งค๊ธ์ก์ ์ ๋ฌ๋ฐ์ ํฌ์ธํธ ๋ฐํ
// ํฌ์ธํธ ์ ๋ฆฝ๋ฅ ์ ๊ณ ๊ฐ๋ฑ๊ธ์ ๋ฐ๋ผ ๋ฌ๋ผ์ง๋๋ฐ Map์ ํฌ์ธํธ ๋ฑ๊ธ์ key , ์ ๋ฆฝ๋ฅ ์ value๋ก ์ ์ฅ
// ๋งต์์ ๊ณ ๊ฐ๋ฑ๊ธ์ key๋ก ์ ๋ฆฝ๋ฅ ์ ์กฐํํ ์ ์๋ค
public int getPoint(String grade, int orderPrice) {
double pointDepositRate = map = get(grade);
return (int) (orderPrice * pointDepositRate);
}
// ์ฌ๋ฌ๊ฐ์ ๊ฐ์ ๊ฐ์ ๊ฐ์ง ๊ฒ๋ค ๋ผ๋ฆฌ ๋ถ๋ฅ
// ๊ณ ๊ฐ์ด๋ฆ์์ ์ฑ์จ๋ณ ์ธ์์ ๊ณ์ฐํ๊ธฐ
๐น Stack ํด๋์ค
- last-in-first-out (LIFO) ์๋ฃ๊ตฌ์กฐ ๊ตฌํ ํด๋์ค
- ํ์ ์ ์ถ : ๊ฐ์ฅ ๋์ค์ ์ถ๊ฐํ ๊ฐ์ด ์ ์ผ ๋จผ์ ์ธ์ถ๋๋ค.
- Stack์ List ์ธํฐํ์ด์ค์ ๊ตฌํ์ฒด๋ค
- Stack ๊ตฌํํด๋์ค์ ๊ณ ์ ํ ๊ธฐ๋ฅ์ ์ฌ์ฉํ๊ธฐ ์ํด์๋ Stack ํ์ ์ ์ฐธ์กฐ๋ณ์์ ๊ฐ์ฒด๋ฅผ ๋์ ํด์ผ ํ๋ค
E push(E item)
// ์ง์ ๋ ๊ฐ์ฒด๋ฅผ ์คํ์ ๋งจ ์์ ์ถ๊ฐํ๋ค
E pop()
// ์คํ์ ๋งจ ์์ ์๋ ๊ฐ์ฒด๋ฅผ ์ญ์ ํ๊ณ , ๊ทธ ๊ฐ์ฒด๋ฅผ ๋ฐํํ๋ค
E peek()
// ์คํ์ ๋งจ ์์ ์๋ ๊ฐ์ฒด๋ฅผ ์ญ์ ์์ด ๋ฐํํ๋ค.
Stack<String> stack = new Stack<String>();
stack.push("ํ๊ธธ๋");
stack.push("๊ณ ๊ธธ๋");
stack.push("๊น์ ์ ");
stack.push("๊น์๋ฏผ");
System.out.println(stack); // [ํ๊ธธ๋, ๊ณ ๊ธธ๋, ๊น์ ์ , ๊น์๋ฏผ]
String name2 = stack.pop();
System.out.println("์ธ์ถํ ๊ฐ์ฒด : " + name2); // ์ธ์ถํ ๊ฐ์ฒด : ๊น์๋ฏผ
System.out.println("stack ํ์ธ : " + stack); // stack ํ์ธ : [ํ๊ธธ๋, ๊ณ ๊ธธ๋, ๊น์ ์ ]
'Language > Java' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
Java I / O (0) | 2023.11.23 |
---|---|
Java Exception (4) | 2023.11.22 |
Java Iterator , Score CRUD (1) | 2023.11.17 |
Java Random , Math (0) | 2023.11.16 |
Java Wrapper , Date , Calendar , StringBuilder , Buffer (6) | 2023.11.15 |