๐ก ๋๋ถ๋ถ์ ๋ด์ฉ์ ์ ํ ํฌ ์๋ฐ ์์ ์ฐธ๊ณ ํ์ฌ ์ ๋ฆฌํ์์ต๋๋ค.
๋ฐฐ์ด
์๋ฃํ ๋ฐ๋ก ์์ [] ๊ธฐํธ๋ฅผ ๋ถ์ฌ์ ์์ฑํ๋ค.
int[] odds = {1,3,5,7,9};
String[] weeks = {"์", "ํ", "์", "๋ชฉ", "๊ธ", "ํ ", "์ผ"};
String[] arr = {"I", "love", "Java"};
1. ๋ฐฐ์ด์ ๊ธธ์ด ์ค์
String[] weeks = new String[7];
- ์ด๊ธฐ๊ฐ ์์ด ๋ฐฐ์ด ๋ณ์๋ฅผ ๋ง๋ค ๋, ์ซ์๊ฐ์ ๋ฃ์ด ๊ธธ์ด๋ฅผ ์ ํด์ฃผ์ด์ผ ํ๋ค. ๊ทธ๋ ์ง ์์ผ๋ฉด ์ค๋ฅ๊ฐ ๋ฐ์ํ๋ค.
- String[] weeks = new String[]; // ๊ธธ์ด์ ๋ํ ์ซ์๊ฐ์ด ์์ผ๋ฏ๋ก ์ปดํ์ผ ์ค๋ฅ ๋ฐ์
2. ๋ฐฐ์ด์ ๊ฐ์ ์ ๊ทผ
String[] weeks = {"์", "ํ", "์", "๋ชฉ", "๊ธ", "ํ ", "์ผ"};
System.out.println(weeks[3]); // ๋ชฉ ์ถ๋ ฅ
3. ๋ฐฐ์ด์ ๊ธธ์ด ๊ตฌํ๊ธฐ
String[] weeks = {"์", "ํ", "์", "๋ชฉ", "๊ธ", "ํ ", "์ผ"};
System.out.println(weeks.length); // 7 ์ถ๋ ฅ
4. ๋ฐฐ์ด ์ค๋ฅ
- ArrayIndexOutOfBoundsException
- ๋ฐฐ์ด์ ๋ฒ์๋ฅผ ๋์ด์๋ฉด ์ด๋ฐ ์ค๋ฅ๊ฐ ๋ฐ์ํ๋ค.
- ์๋ฐ ์ฝ๋๋ฅผ ์์ฑํ๋ฉด์ ๊ฐ์ฅ ๋ง์ด ๋ณด๋ ์ค๋ฅ ์ค ํ๋์ด๋ค.
๋ฆฌ์คํธ
๋ฐฐ์ด๊ณผ ๋น์ทํ์ง๋ง ๋ ํธ๋ฆฌํ ๊ธฐ๋ฅ์ด ๋ง์ ์๋ฃํ์ด๋ค.
๋ฐฐ์ด vs. ๋ฆฌ์คํธ
- ๋ฐฐ์ด : ํฌ๊ธฐ ๊ณ ์ . ์ด๊ธฐ ์ค์ ํฌ๊ธฐ๋ฅผ ์ด๊ณผํ๋ ๊ฐ์ ๋ด์ ์ ์๋ค.
- ๋ฆฌ์คํธ : ํฌ๊ธฐ๊ฐ ์ ํด์ ธ ์์ง ์์. ์ํ๋ ๋งํผ ๊ฐ์ ๋ด์ ์ ์๋ค.
- ์ ์ฅํ ๊ฐ์ ํฌ๊ธฐ๊ฐ ๋ช ํํ์ง ์์ ๋, ๋ฐฐ์ด์ด ์๋ ๋ฆฌ์คํธ๋ฅผ ์ฌ์ฉํ๋ค!
ArrayList
๋ฆฌ์คํธ ์๋ฃํ์์ ๊ฐ์ฅ ๋ง์ด ์ฌ์ฉํ๋ค. ์ด ๋ฐ์๋ Vector, LinkedList ๋ฑ์ด ์๋ค.
ArrayList์ ๋ฉ์๋
import java.util.ArrayList;
public class Sample {
public static void main(String[] args) {
ArrayList pitches = new ArrayList();
pitches.add("123"); // "123" ์ถ๊ฐ
pitches.add("134"); // "134" ์ถ๊ฐ
pitches.add("164"); // "164" ์ถ๊ฐ
for (int i=0; i<pitches.size();i++){
System.out.println(pitches.get(i)); // i๋ฒ์งธ ์์ ์ถ๋ ฅ
}
pitches.remove("123"); // "123" ์ญ์
System.out.println(pitches.contains("123")); // "123" ํฌํจ ์ฌ๋ถ (false)
}
}
- add
- ์์๋ฅผ ์ถ๊ฐ
- ์ฌ์ฉ๋ฒ : ArrayList.add(์์);
- get
- ํน์ ์ธ๋ฑ์ค์ ๊ฐ์ ์ถ์ถ
- ์ฌ์ฉ๋ฒ : ArrayList.get(index);
- size
- ArrayList์ ํฌ๊ธฐ(์์์ ๊ฐ์) ๋ฆฌํด
- ์ฌ์ฉ๋ฒ : ArrayList.size();
- contains
- ํน์ ์์์ ์กด์ฌ ์ฌ๋ถ๋ฅผ boolean์ผ๋ก ๋ฆฌํด
- ์ฌ์ฉ๋ฒ : ArrayList.contains(์์);
- remove
์ ๋ค๋ฆญ (generics)
์๋ฃํ์ ์์ ํ๊ฒ ์ฌ์ฉํ ์ ์๋๋ก ๋ง๋ค์ด์ฃผ๋ ๊ธฐ๋ฅ์ด๋ค.
์ ๋ค๋ฆญ์ ์ฌ์ฉํ๋ฉด,
- ์๋ฃํ์ ๊ฐ์ ๋ก ๋ฐ๊ฟ ๋ ์๊ธธ ์ ์๋ ์บ์คํ ์ค๋ฅ๋ฅผ ์ค์ผ ์ ์๋ค.
- ํ ๋ณํ๊ณผ ๊ด๋ จ๋ ๋ถํ์ํ ์ฝ๋ฉ์ ์ค์ผ ์ ์๋ค.
- ์๋ชป๋ ํ ๋ณํ ๋๋ฌธ์ ๋ฐ์ํ๋ ๋ฐํ์ ์ค๋ฅ๋ฅผ ๋ฐฉ์งํ ์ ์๋ค.
์ฌ์ฉ ์์
ArrayList<String> pitches = new ArrayList<>();
- ArrayList์ ๋ด์ ์ ์๋ ์๋ฃํ์ String ๋ฟ์ด๋ผ๋ ์๋ฏธ์ด๋ค.
- ์ ๋ค๋ฆญ์ค๋ฅผ ์ด์ฉํ๋ฉด ์๋ฃํ์ ์ข ๋ ๋ช ํํ๊ฒ ์ฒดํฌํ ์ ์๋ค.
๋งต
- ํค(key)์ ๊ฐ(value)์ ํ ์์ผ๋ก ๊ฐ๋ ์๋ฃํ
- ๋์ ๊ด๊ณ๋ฅผ ์ฝ๊ฒ ํํํ ์ ์๊ฒ ํด์ค
HashMap
HashMap์ ๋งต ์๋ฃํ ์ค ๊ฐ์ฅ ๊ธฐ๋ณธ์ด๋ค. ์ด ๋ฐ์๋ LinkedHashMap, TreeMap ๋ฑ์ด ์๋ค.
HashMap<String, String> fruitMap = new HashMap<>();
fruitMap.put("apple", "์ฌ๊ณผ"); // key, value ์ถ๊ฐ
fruitMap.put("banana", "๋ฐ๋๋");
fruitMap.put("grape", "ํฌ๋");
System.out.println(fruitMap.get("banana")); // "๋ฐ๋๋" ์ถ๋ ฅ
System.out.println(fruitMap.size()); // 3 ์ถ๋ ฅ
System.out.println(fruitMap.keySet()); // [banana, apple, grape] ์ถ๋ ฅ
fruitMap.remove("apple"); // "apple" ์ญ์
System.out.println(fruitMap.containsKey("apple")); // false ์ถ๋ ฅ
System.out.println(fruitMap.size()); // 2 ์ถ๋ ฅ
System.out.println(fruitMap.keySet()); // [banana, grape] ์ถ๋ ฅ
- put
- key์ value ์ถ๊ฐ
- ์ฌ์ฉ๋ฒ : HashMap***.put(***key***,***value***);**
- get
- ํน์ key์ ํด๋นํ๋ value๋ฅผ ์ป์
- ์ฌ์ฉ๋ฒ : *HashMap***.get(***key***);**
- containsKey
- ํน์ key๊ฐ ์กด์ฌํ๋์ง true / false๋ก ๋ฆฌํด
- ์ฌ์ฉ๋ฒ : *HashMap***.containsKey(***key***);**
- remove
- ํน์ ํญ๋ชฉ ์ญ์
- ์ฌ์ฉ๋ฒ : *HashMap***.remove(***key***);**
- size
- ๋งต์ ํฌ๊ธฐ(๋งต ์์์ ๊ฐ์)๋ฅผ ๋ฆฌํด
- ์ฌ์ฉ๋ฒ : *HashMap***.size();**
- keySet
- ๋งต์ ๋ชจ๋ key๋ฅผ ๋ฆฌํด
- ์ฌ์ฉ๋ฒ : *HashMap***.keySet();**
์งํฉ
์งํฉ ์๋ฃํ์ ์ค๋ณต์ ํ์ฉํ์ง ์๊ณ , ์์๊ฐ ์๋ค.
์ค๋ณต์ ํ์ฉํ์ง ์๋๋ค๋ ํน์ง ๋๋ฌธ์ ์๋ฃํ์ ์ค๋ณต ์ ๊ฑฐ๋ฅผ ์ํ ํํฐ ์ญํ ๋ก ์ข ์ข ์ฌ์ฉ๋๋ค.
HashSet
์งํฉ ์๋ฃํ์๋ HashSet, TreeSet, LinkedHashSet ๋ฑ์ด ์๋ค. ์ด ์ค์์ HashSet์ ๊ฐ์ฅ ๋ง์ด ์ฌ์ฉํ๋ค.
๊ต์งํฉ, ํฉ์งํฉ, ์ฐจ์งํฉ ๊ตฌํ๊ธฐ
HashSet<String> s1 = new HashSet<>(Arrays.asList("Java", "Js", "python", "C"));
HashSet<String> s2 = new HashSet<>(Arrays.asList("Js", "python", "C++", "C#"));
/* ๊ต์งํฉ ๊ตฌํ๊ธฐ */
HashSet<String> intersection = new HashSet<>(s1); // s1 ๋ด์ฉ์ด ๋ณ๊ฒฝ๋๋ ๊ฒ์ ๋ฐฉ์ง
intersection.retainAll(s2);
System.out.println(intersection); // [python, Js] ์ถ๋ ฅ
/* ํฉ์งํฉ ๊ตฌํ๊ธฐ */
HashSet<String> union = new HashSet<>(s1); // s1 ๋ด์ฉ์ด ๋ณ๊ฒฝ๋๋ ๊ฒ์ ๋ฐฉ์ง
union.addAll(s2);
System.out.println(union); // [C#, Java, python, C++, C, Js] ์ถ๋ ฅ
/* ์ฐจ์งํฉ ๊ตฌํ๊ธฐ */
HashSet<String> substract = new HashSet<>(s1); // s1 ๋ด์ฉ์ด ๋ณ๊ฒฝ๋๋ ๊ฒ์ ๋ฐฉ์ง
substract.removeAll(s2);
System.out.println(substract ); // [Java, C] ์ถ๋ ฅ
- retainAll
- ๊ต์งํฉ ๋ฉ์๋
- addAll
- ํฉ์งํฉ ๋ฉ์๋
- removeAll
- ์ฐจ์งํฉ ๋ฉ์๋
์งํฉ ์๋ฃํ๊ณผ ๊ด๋ จ๋ ๋ฉ์๋
HashSet<String> set = new HashSet<>();
set.add("Jump"); // "jump" ์ถ๊ฐ
set.addAll(Arrays.asList("To", "Java")); // "To", "Java" ์ถ๊ฐ
System.out.println(set); // [Java, To, Jump] ์ถ๋ ฅ
set.remove("Java"); // "java" ์ถ๊ฐ
System.out.println(set); // [To, Jump] ์ถ๋ ฅ
- add
- ๊ฐ์ ์ถ๊ฐ
- ์ฌ์ฉ๋ฒ : *HashSet***.add(***์์***);**
- addAll
- ๊ฐ์ ํ๊บผ๋ฒ์ ์ฌ๋ฌ ๊ฐ ์ถ๊ฐ
- ์ฌ์ฉ๋ฒ : *HashSet***.addAll(Arrays.asList(***์์1,์์2,์์3***));**
- remove
- ๊ฐ์ ์ ๊ฑฐ
- ์ฌ์ฉ๋ฒ : *HashSet***.remove(***์์***);**
'Java > ๋ฌธ๋ฒ' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[Java ๋ฌธ๋ฒ ์ด์ ๋ฆฌ] final (1) | 2024.01.27 |
---|---|
[Java ๋ฌธ๋ฒ ์ด์ ๋ฆฌ] ๋ฌธ์์ด โ ์ซ์ ํ๋ณํ / int โ char (0) | 2024.01.27 |
[Java ๋ฌธ๋ฒ ์ด์ ๋ฆฌ] ์์ ์งํฉ enum (1) | 2024.01.27 |
[Java ๋ฌธ๋ฒ ์ด์ ๋ฆฌ] Math ํด๋์ค, Random ํด๋์ค (0) | 2024.01.27 |
[Java ๋ฌธ๋ฒ ์ด์ ๋ฆฌ] ์๋ฃํ (์ ์, ์ค์, ๋ถ์ธ, ๋ฌธ์, ๋ฌธ์์ด, StringBuffer) (1) | 2024.01.24 |