๐ lambda ์ด์ด์
์ปฌ๋ ์ ํ๋ ์์ํฌ
์ปฌ๋ ์
ํ๋ ์์ํฌ
1. list ์ปฌ๋ ์
: ํ์ด์ฌ์์๋ ๋ฆฌ์คํธ
2. map ์ปฌ๋ญ์
: ํ์ด์ฌ์์๋ ๋์
๋๋ฆฌ
<List ์ปฌ๋ ์ >
- ์์๋ฅผ ์ ์ง, ์ค๋ณต์ ์ฅ ๊ฐ๋ฅ
- ๊ตฌํํด๋์ค : ArrayList, Vector, LinkedList
Vector๋ ๋ฉํฐ ์ค๋ ๋๊ฐ ๊ฐ๋ฅํ๋ค.
์ธํฐํ์ด์ค list
ArrayList ๋ฆฌ์คํธ์์ ์ ๊ณตํ๋ ์ถ์๋ฉ์๋๋ฅผ ๋ค ๊ฐ๊ณ ์๋ค.
package com.gyuone.collection;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Iterator;
import java.util.List; // ์ถ๊ฐํ์
public class ArrayListExam01 {
public static void main(String[] args) {
List<String> list = new ArrayList<String>();
list.add("java"); // 0
list.add("python"); // 1
list.add("c++"); // 2 index ์ ๊ทผ ๊ฐ๋ฅ
list.add("Ruby");
list.add("C#");
System.out.println("์ด ๋ฐ์ดํฐ ์ : " + list.size()); // ์ ์ฒด ๋ฐ์ดํฐ ๊ฐ์ ๋์ด.
System.out.println("index 2 ๋ฒ์งธ ๋ฐ์ดํฐ" + list.get(2)); // index ์ ๊ทผ
System.out.println();
for(int i = 0; i < list.size(); i++) {
System.out.print(list.get(i) + " ");
} // ์ ์ฒด ๋ฐ์ดํฐ ์ฐ๊ธฐ
System.out.println();
System.out.println();
for(String s : list) { // ํ์ฅ for๋ฌธ
System.out.println(s + " ");
}
System.out.println();
list.remove(2); // index ๋ ๋ฆฌ๊ธฐ
for(String s : list) { // ํ์ฅ for๋ฌธ
System.out.println(s + " ");
}
System.out.println();
list.remove("python"); // ๋ด์ฉ๋ฌผ๋ก ์ง์ ๋ ๋ฆฌ๊ธฐ
for(String s : list) { // ํ์ฅ for๋ฌธ
System.out.println(s + " ");
}
System.out.println();
List<String> list2 = Arrays.asList("์์ธ", "๋์ ", "์ธ์ฐ");
for(String s: list2) {
System.out.print(s + " ");
}
System.out.println();
list2.add("์ธ์ฒ");
for(String s: list2) {
System.out.print(s + " ");
}
System.out.println(); // ์ถ๊ฐ ๋ถ๊ฐ๋ฅ
}
}
์ถ๊ฐ ๋ถ๊ฐ๋ฅ
Map
package com.gyuone.collection;
import java.util.HashMap;
import java.util.Iterator;
import java.util.Map;
import java.util.Set;
public class MapExam01 {
public static void main(String[] args) {
Map<String, Integer> map = new HashMap<>();
// HashTable() thread safe ๋ฉํฐ์ค๋ ๋๋ก ๋์์ ๊ณต์ ํ๋ ค๋ฉด HashTable๋ก ์ด๋
map.put("๊ตญ์ด", 90);
map.put("์์ด", 85);
map.put("์ํ", 95);
map.put("๊ณผํ", 100);
System.out.println(map.size()); // ๋ฐฐ์ด ์ฌ์ด์ฆ
System.out.println("์์ด์ ์ : " + map.get("์์ด"));
Set<String> keySet = map.keySet();
Iterator<String> keyIterator = keySet.iterator(); // ํ์ด์ฌ์์ generator
// ๋ค ๊ฐ๊ณ ์๋ ์ํ์์ ํ๋์ฉ ์ค๋ค.
while(keyIterator.hasNext()) { // ๊บผ๋ด์ฌ ๊ฐ์ด ์๋๋
String key = keyIterator.next();
int value = map.get(key);
System.out.println(key + " : " + value + " ");
}
System.out.println();
// ๋๋ฒ์งธ ๋ฐฉ๋ฒ
Set<Map.Entry<String, Integer>> entrySet = map.entrySet(); // ํค๋ value ๊ฐ์ด ๋ฝ์ ์ฃผ๊ฒ ๋ค.
Iterator<Map.Entry<String, Integer>> entryIterator = entrySet.iterator();
while(entryIterator.hasNext()) {
Map.Entry<String, Integer> entry = entryIterator.next();
String key = entry.getKey();
int value = entry.getValue();
System.out.print(key + " : " + value + " ");
}
System.out.println();
}
}
stream
package com.gyuone.collection;
import java.util.Arrays;
import java.util.Iterator;
import java.util.List;
import java.util.stream.Stream;
import com.gyuone.lambda2.Person;
public class StreamExam01 {
public static void main(String[] args) {
List<String> list = Arrays.asList("์์ธ", "๋์ ", "์ธ์ฐ", "๋ถ์ฐ");
for(String s: list) {
System.out.println(s + " "); // ๊ฐํธํ๊ฒ ์ฌ์ฉํ๊ธฐ ์ํด ๋ง๋ . ํ๋์ฉ ์ฐธ์กฐ
}
System.out.println();
Iterator<String> iterator = list.iterator(); // ์ฌ๋ฌ ์ค์ ํ์ดํํ๊ธฐ ํ๋๋๊น hasNext๋ก ๋์ง์ด๋ธ๋ค.
while(iterator.hasNext()) { // ์๋ ์ด๋ ๊ฒ ์ผ๋ค.
String city = iterator.next();
System.out.print(city + " ");
}
System.out.println();
System.out.println();
Stream<String> stream = list.stream(); // ํํ์์ผ๋ก ๊ฐ๋จํ๊ฒ ๋ง๋ค๊ธฐ stream
stream.forEach(city -> System.out.print(city + " ")); // for each ๋ด๋ถ์์ ๋ฐ๋ณต
System.out.println(); // ๋์ฉ๋ ๋ฐ์ดํฐ ์ฒ๋ฆฌํ ๋ ๋ณ๋ ฌ ์คํธ๋ฆผ CPU ์ฝ์ด ๊ฐ์๋ก ๋ฐ์ดํฐ๋ฅผ ์ฒ๋ฆฌํ๋ค.
List<Person> list2 = Arrays.asList(
new Person("ํ๊ธธ๋", "๋จ์", 90),
new Person("์ด์์ ", "๋จ์", 95)
);
System.out.println();
Stream<Person> stream2 = list2.stream();
// ์ด๋ฆ ์ ์ ์ถ๋ ฅ
stream2.forEach(person -> {
String name = person.getName();
int score = person.getScore();
System.out.println(name + " : " + score + " ");
});
}
}
'๋นํธ๊ต์ก > JAVA' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[18์ผ์ฐจ] JAVA ์๊ณ ๋ฆฌ์ฆ ๋ฌธ์ ํ์ด 2 (0) | 2022.07.13 |
---|---|
[18์ผ์ฐจ] JAVA ์๊ณ ๋ฆฌ์ฆ ๋ฌธ์ ํ์ด 1 (0) | 2022.07.13 |
[17์ผ์ฐจ] JAVA Programmers ๊ฐ๋ ์ ๋ฆฌ (0) | 2022.07.12 |
[17์ผ์ฐจ] JAVA Generic / lambda (0) | 2022.07.12 |
[16์ผ์ฐจ] JAVA ์์ธ์ฒ๋ฆฌ. ์ค๋ ๋ (0) | 2022.07.11 |
๋๊ธ