Arrays
์ถ๋ ฅ๋น๊ต
[์์ ์ฝ๋]
public class Newsfeed {
public Newsfeed(){
}
// Create getTopics() below:
public String[] getTopics() {
String[] topics = {"Opinion", "Tech", "Science", "Health"};
return topics;
}
public static void main(String[] args){
Newsfeed sampleFeed = new Newsfeed();
String[] topics = sampleFeed.getTopics();
System.out.println(topics);
}
}
Java
๋ณต์ฌ
Output
[Ljava.lang.String;@2aae9190
[์์ ์ฝ๋]
// import the Arrays package here:
import java.util.Arrays;
public class Newsfeed {
public Newsfeed(){
}
public String[] getTopics(){
String[] topics = {"Opinion", "Tech", "Science", "Health"};
return topics;
}
public static void main(String[] args){
Newsfeed sampleFeed = new Newsfeed();
String[] topics = sampleFeed.getTopics();
System.out.println(Arrays.toString(topics));
}
}
Java
๋ณต์ฌ
Output
[Opinion, Tech, Science, Health]
์ฒซ๋ฒ์งธ ์ฝ๋๋ฅผ ์ถ๋ ฅํ๋ฉด ๊ฒฐ๊ณผ๋ฌผ๋ก ๋ฐฐ์ด์ ์ฃผ์๊ฐ ๋์จ๋ค๋ ๊ฒ์ ์ ์ ์๋ค. ๋ง์ฝ ์ด ์ฃผ์ ๋ง๊ณ ๋ฐฐ์ด ๊ทธ ์์ฒด๋ฅผ ์ถ๋ ฅํ๊ณ ์ถ๋ค๋ฉด ์ด๋ป๊ฒ ํด์ผํ ๊น?
์๋ฐ์ Arrays ํจํค์ง์ ์ํด ์ ๊ณต๋๋ toString() ๋ฉ์๋๋ฅผ ์ฌ์ฉํด์ผ ํ๋ค.
๋๋ฌธ์ ๋ฐ๋์ ํด๋์ค๋ฅผ ์ ์ํ๊ธฐ ์ ์ import java.util.Arrays; ๋ฅผ ์ ์ด์ผํ๋ค.
Arrays ํจํค์ง๋ฅผ ์ฌ์ฉํ๋ ค๋ฉด Arrays.toString() ์ ์ฌ์ฉํ๋ฉด ๋๋ค. ๋๋ฒ์งธ ์ฝ๋์ ์ถ๋ ฅ๋ฌธ์ ๋ณด๋ฉด ์ด์ ๊ณผ ๋ฌ๋ฆฌ ๋ฐฐ์ด ๊ทธ ์์ฒด๋ฅผ ์ถ๋ ฅํด์ค๋ค๋ ๊ฒ์ ์ ์ ์๋ค.
Creating an Empty Array
๋น์ด์๋ ๋ฐฐ์ด์ ์์ฑํ๊ณ ์ถ๋ค๋ฉด ๋ค์๊ณผ ๊ฐ์ ๊ตฌ๋ฌธ์ ์ฌ์ฉํ๋ฉด ๋๋ค.
[๋ฐฐ์ด ์์์ ๋ฐ์ดํฐํ์
][] [๋ฐฐ์ด์ด๋ฆ] = new [๋ฐฐ์ด ์์์ ๋ฐ์ดํฐํ์
][๋ฐฐ์ด์ํฌ๊ธฐ];
Java
๋ณต์ฌ
์)
๋ง์ฝ ๋ฐฐ์ด์์ ๋ค์ด๊ฐ๋ ์์๋ค์ ํ์
์ด double ํ ์ด๋ผ๋ฉด
double[] arr = new double[5];
๋ง์ฝ ๋ฐฐ์ด์์ ๋ค์ด๊ฐ๋ ์์๋ค์ ํ์
์ด String ํ ์ด๋ผ๋ฉด
String[] arr = new String[5];
๋ง์ฝ ์ธ์คํด์ค ์์ญ์ ์๋ ๋ฐฐ์ด์ ์ด๊ธฐํ ํ๊ณ ์ถ๋ค๋ฉด ์ด๋ป๊ฒ ํด์ผํ ๊น?
[์์ ์ฝ๋]
import java.util.Arrays;
public class Newsfeed {
String[] topics = {"Opinion", "Tech", "Science", "Health"};
int[] views = {0, 0, 0, 0};
String[] favoriteArticles;
public Newsfeed(){
// Initialize favoriteArticles here:
favoriteArticles = new String[10];
}
...
Java
๋ณต์ฌ
favoriteArticles ๋ฅผ new ํค์๋๋ฅผ ์ด์ฉํ์ฌ ํฌ๊ธฐ๊ฐ 10์ธ ๋ฐฐ์ด๋ก ์ด๊ธฐํ ํ๊ณ ์ถ๋ค๋ฉด ๋ณผ๋์ฒด์ ๊ฐ์ด ์ด๋ฆ = new String[ํฌ๊ธฐ]; ์ ํํ๋ฅผ ์ฌ์ฉํ๋ฉด ๋๋ค. ์ธ์คํด์ค ์์ญ์์ ์ด๋ฏธ ๋ฐฐ์ด์์ ์ ์ ์๊ธฐ ๋๋ฌธ์ String[] ์ ๋ฃ์ ํ์๊ฐ ์๋ค. ๋ง์ฝ ๋ฃ๊ฒ ๋๋ฉด java.lang.NullPointerException ์๋ฌ๊ฐ ๋ํ๋๋ค
์ด์ฒ๋ผ new ํค์๋๋ฅผ ์ฌ์ฉํ์ฌ ๋น์ด์๋ ๋ฐฐ์ด์ ๋ง๋ค ๋, ๊ฐ๊ฐ์ ์์๋ ๋ฐ์ดํฐ ํ์
์ ๋ฐ๋ผ ํน์ ํ ๊ฐ์ผ๋ก ์ด๊ธฐํ๋๋ค.
Data Type | Initialized Value | Date type | Initialized Value |
byte | 0 | double | 0.0d |
short | 0 | char | โ\n0000โ |
int | 0 | boolean | false |
long | OL | ์ฐธ์กฐํ๋ณ์ (String or any Object) | null |
float | 0.0f |
String[] args
๋ฉ์ธ ๋ฉ์๋๋ฅผ ์ธ ๋ ํ๋ผ๋ฏธํฐ๋ก String[] args ๋ฅผ ์ด๋ค. ์ฆ args ๋ผ๋ ์ด๋ฆ์ ๊ฐ์ง ๋ฐฐ์ด์ธ๋ฐ, ์ด ํ๋ผ๋ฏธํฐ๋ ์ด๋ค๊ฐ์ ๋ฐฐ์ด๋ก ๊ฐ์ง๊น? args ๋ ํด๋์ค ํ์ผ์ ์คํํ ๋ ํฐ๋ฏธ๋์์ ์ ๋ฌ๋ฐ์ argument ๋ฅผ ๋ฐฐ์ด๊ฐ์ผ๋ก ๊ฐ์ง๋ค. ๊ทธ๋ ๋ค๋ฉด ์ด๋ป๊ฒ argument ๋ฅผ ์ ๋ฌ ๋ฐ์ ์ ์์๊น?
[์์ ์ฝ๋]
public class HelloYou {
public static void main(String[] args) {
System.out.println("Hello " + args[0]);
}
}
Java
๋ณต์ฌ
HelloYou ๋ผ๋ ํด๋์ค ํ์ผ์ด๋ค. ๋ง์ฝ ํฐ๋ฏธ๋์์ ์ด ํ์ผ์ ์คํํ๋ค๊ณ ์๊ฐํด๋ณด์.
์ด๋ ๋ค์๊ณผ ๊ฐ์ด ํ์ผ์ ์คํ ํ๋ค๋ฉด,
java <class ํ์ผ ์ด๋ฆ> <args[0]> | java HelloYou Laura
์๋์ ๊ฐ์ ๊ฒฐ๊ณผ๋ฅผ ์ป์ ๊ฒ์ด๋ค.
Hello Laura
์ฆ, argument ๋ก ๋ฃ์ Laura๊ฐ args ๋ฐฐ์ด์ 0๋ฒ์งธ ์ธ๋ฑ์ค ๊ฐ์ด ๋ ๊ฒ์ด๋ค.
์ฝ์
์๋ฒ์ ๋ก์ปฌ ์ฅ์น์์ ์ง์ ๋ช
๋ น์ด๋ฅผ ์์ฑํ ์ ์๋ ์
์ถ๋ ฅ ์ฅ์น์ด๋ค.
์ดํด๋ฆฝ์ค๋ ์ธํ
๋ฆฌ์ ์ด ์์ ์๋์ ์์ฑํ ์ฝ๋๊ฐ ์คํ๋์์ ๋ ์ฝ๋๋ฅผ ์ถ๋ ฅํด์ฃผ๋ ์ฐฝ์ด ์์ง ์์๊ฐ? ๊ทธ๊ฒ์ ์ฝ์์ด๋ผ๊ณ ํ๋ค!
ํฐ๋ฏธ๋
์๋ฒ์ ๋ก์ปฌ ๋๋ ์๊ฒฉ์ผ๋ก ์ ์ํ ์ ์๋ ์ฝ์์ ๊ตฌํํ ์ํํธ์จ์ด
command ๋ฅผ ์
๋ ฅํ๋ shell ์ ์คํํ๊ธฐ ์ํ ํ๋ก๊ทธ๋จ์ด๋ค.
์
์ค์ ๋ก ๋ช
๋ น์ด๋ฅผ ์ ๋ฌํ๊ณ ๊ฒฐ๊ณผ๋ฅผ ์ ๋ฌ๋ฐ๋ ํ๋ก๊ทธ๋จ
ArrayLists
Creating ArrayLists
ArrayList ๋ฅผ ์ ์ธํ๊ธฐ ์ํด์๋ ๋ค์๊ณผ ๊ฐ์ ๊ตฌ๋ฌธ์ ์ฌ์ฉํด์ผ ํ๋ค.
ArrayList<๋ณ์์ ํ์
> [๋ฐฐ์ด์ ์ด๋ฆ];
[์์ ์ฝ๋]
// Declaring:
ArrayList<Integer> ages;
// Initializing:
ages = new ArrayList<Integer>();
// Declaring and initializing in one line:
ArrayList<String> babyNames = new ArrayList<String>();
Java
๋ณต์ฌ
ArrayList ๋ฅผ ์ฌ์ฉํ ๋ java.util.ArrayList ๋ฅผ import ํด์ผ ํ๋ค๋ ๊ฒ ์์ง๋ง์!
ArrayList ์ Array ์์ ๋ณ์ ํ์
์ ๋ค๋ฅด๊ฒ ์์ฑํด์ผ ํ๋ค.
Array | ArrayList |
int | Integer |
double | Double |
char | Char |
String | String |
Adding an Item
๋น์ด์๋ ArrayList ์ ๊ฐ์ ์ถ๊ฐํ๋ ค๋ฉด ์ด๋ป๊ฒ ํด์ผํ ๊น? ์๋์ ๊ฐ์ ๊ตฌ๋ฌธ์ ์ฌ์ฉํ๋ฉด ๋๋ค.
[ArrayList ์ด๋ฆ].add(์์);
[์์ ์ฝ๋]
ArrayList<Car> carShow = new ArrayList<Car>();
carShow.add(ferrari);
// carShow now holds [ferrari]
carShow.add(thunderbird);
// carShow now holds [ferrari, thunderbird]
carShow.add(volkswagen);
// carShow now holds [ferrari, thunderbird, volkswagen]
Java
๋ณต์ฌ
Array ์ฒ๋ผ ์ธ๋ฑ์ค๋ฅผ ์ง์ ํด ์ค ํ์๊ฐ ์์ด ์์ฐจ์ ์ผ๋ก ๊ฐ์ด ์ ์ฅ๋๋ ๊ฒ์ ์ ์ ์๋ค.
๋ง์ฝ ํน์ ์ธ๋ฑ์ค์ ํน์ ๊ฐ์ ์ง์ ํ๊ณ ์ถ๋ค๋ฉด? ๊ทธ๋ด๋๋ ๋ค์๊ณผ ๊ฐ์ด ์ฌ์ฉํ๋ฉด ๋๋ค.
[์์ ์ฝ๋]
ArrayList<Car> carShow = new ArrayList<Car>();
carShow.add(ferrari);
// carShow now holds [ferrari]
carShow.add(thunderbird);
// carShow now holds [ferrari, thunderbird]
carShow.add(volkswagen);
// carShow now holds [ferrari, thunderbird, volkswagen]
// Insert object corvette at index 1
carShow.add(1, corvette);
// carShow now holds [ferrari, corvette, thunderbird, volkswagen]
// Insert object porsche at index 2
carShow.add(2, porsche);
// carShow now holds [ferrari, corvette, porsche, thunderbird, volkswagen]
Java
๋ณต์ฌ
ArrayList Size
ArrayList ์์ ์์๊ฐ ๋ช๊ฐ ์๋์ง ์๋ ค๋ฉด ์ด๋ป๊ฒ ํด์ผํ ๊น? ์ด๋ size() ๋ฉ์๋๋ฅผ ์ฐ์!
[ArrayList ๋ช
].size();
[์์ ์ฝ๋]
ArrayList<String> shoppingCart = new ArrayList<String>();
shoppingCart.add("Trench Coat");
System.out.println(shoppingCart.size());
// 1 is printed
shoppingCart.add("Tweed Houndstooth Hat");
System.out.println(shoppingCart.size());
// 2 is printed
shoppingCart.add("Magnifying Glass");
System.out.println(shoppingCart.size());
// 3 is printed
Java
๋ณต์ฌ
ArrayList ์ ๊ฐ์ dynamic object ์์๋ ์ ์ฅ๋ ๊ฐ์ฒด์ ์์ด ์ผ๋ง์ธ์ง ์๋๊ฒ์ด ์ค์ํ๋ค
Accessing an Index
ArrayList ์์ ํน์ ํ index ์ ์ ๊ทผํ๋ ค๋ฉด get() ๋ฉ์๋๋ฅผ ์ด์ฉํด์ผ ํ๋ค.
[ArrayList ๋ช
].get(indexNumber);
์ฐ๋ฆฌ๊ฐ ์ป๊ฒ๋๋ ๊ฒ์ index Number ๊ฐ ์๋ ํด๋น index ์ ์ ์ฅ๋์ด ์๋ ๊ฐ์ด๋ค.
Changing a Value
Array ์์์ ๋ณ์๊ฐ ๋ณ๊ฒฝ
[์์ ์ฝ๋]
String[] shoppingCart = {"Trench Coat", "Tweed Houndstooth Hat", "Magnifying Glass"};
shoppingCart[0] = "Tweed Cape";
// shoppingCart now holds ["Tweed Cape", "Tweed Houndstooth Hat", "Magnifying Glass"]
Java
๋ณต์ฌ
๋ณ์๋ฅผ ๋ณ๊ฒฝํ๊ธฐ ์ํด ๋ณ๊ฒฝ์ ์ํ๋ ์ธ๋ฑ์ค๋ฒํธ๋ฅผ ๊ฐ์ด ์ ์ด์ค์ผ ํ๋ค.
ArrayList ์์์ ๋ณ์๊ฐ ๋ณ๊ฒฝ
[์์ ์ฝ๋]
ArrayList<String> shoppingCart = new ArrayList<String>();
shoppingCart.add("Trench Coat");
shoppingCart.add("Tweed Houndstooth Hat");
shoppingCart.add("Magnifying Glass");
shoppingCart.set(0, "Tweed Cape");
// shoppingCart now holds ["Tweed Cape", "Tweed Houndstooth Hat", "Magnifying Glass"]
Java
๋ณต์ฌ
Array ์ ๋ค๋ฅด๊ฒ set() ๋ฉ์๋๋ฅผ ์ฌ์ฉํ๋ค.
[ArrayList ๋ช
].set(indexNumber, ์๋ก์ด๊ฐ);
Removing an Item
Array ์์ ํน์ ํ ์์๋ฅผ ์ง์ฐ๊ธฐ ์ํด์๋ ์๋ก์ด ๋ฐฐ์ด์ ๋ง๋ค๊ณ ๊ฐ๋ค์ ์ฎ๊ฒจ์ค์ผ ํ๋ค.
ํ์ง๋ง ArraryList ๋ ํน์ ์์๋ฅผ ์ง์ฐ๋ ๊ฒ์ด ๊ฐํธํ๋ฉฐ, ๋๊ฐ์ง ๋ฐฉ๋ฒ์ด ์๋ค.
remove ๋ฉ์๋ ์ฌ์ฉ
[ArrayList ๋ช
].remove(indexNumber, ์๋ก์ด๊ฐ);
[์์ ์ฝ๋]
ArrayList<String> shoppingCart = new ArrayList<String>();
shoppingCart.add("Trench Coat");
shoppingCart.add("Tweed Houndstooth Hat");
shoppingCart.add("Magnifying Glass");
shoppingCart.remove(1);
// shoppingCart now holds ["Trench Coat", "Magnifying Glass"]
Java
๋ณต์ฌ
1๋ฒ ์ธ๋ฑ์ค์ ๊ฐ์ธ Tweed Houndstooth Hat ์ด ์ง์์ก๋ค.
ํน์ ํ ๋ณ์๋ฅผ ์ง์ ์ ์
[์์ ์ฝ๋]
ArrayList<String> shoppingCart = new ArrayList<String>();
shoppingCart.add("Trench Coat");
shoppingCart.add("Tweed Houndstooth Hat");
shoppingCart.add("Magnifying Glass");
shoppingCart.remove("Trench Coat");
// shoppingCart now holds ["Tweed Houndstooth Hat", "Magnifying Glass"]
Java
๋ณต์ฌ
๊ฐ์ ์ฒซ๋ฒ์งธ ์ธ์คํด์ค์ธ Trench Coat ์ด ์ง์์ก๋ค.
์ง์์ง๊ฒ์ ๋ํ ์์ ์ด ๋ค๋ฅด๋ค
Getting an Item's Index
๋ง์ฝ ํน์ ์์์ ์ธ๋ฑ์ค ๋๋ฒ๋ฅผ ์๊ณ ์ถ๋ค๋ฉด ์ด๋ป๊ฒ ํด์ผ ํ ๊น? ์๋์ ๊ตฌ๋ฌธ์ ์ด์ฉํ์
[ArrayList ๋ช
].indexOf(์์);
[์์ ์ฝ๋]
// detectives holds ["Holmes", "Poirot", "Marple", "Spade", "Fletcher", "Conan", "Ramotswe"];
System.out.println(detectives.indexOf("Fletcher"));
Java
๋ณต์ฌ
์์ ์ฝ๋๋ 4 ๋ฅผ ์ถ๋ ฅํ ๊ฒ์ด๋ค.
๊ทธ ์ธ ๋ฉ์๋
.sublist(start index, end index);
์ํ๋ ๊ตฌ๊ฐ์ ๊ฐ๋ค์ ์ถ๋ ฅํด์ค๋ค. end index ๋ ๋ด๊ฐ ๋ง์ง๋ง ๊ตฌ๊ฐ์ผ๋ก ์ํ๋ ๊ณณ์ index number ์ 1 ์ ๋ํด์ค์ผ ํ๋ค๋ ๊ฒ์ ๋ช
์ฌํ์!
.contains();
() ์์ ์๋ ๊ฐ์ด ๋ฐฐ์ด์ ์๋์ง ๋น๊ตํด์ฃผ๋ ๋ฉ์๋์ด๋ค.
๐๐ซ๐ซ๐๐ฒ๐ฌ ๐๐ง๐ ๐๐ซ๐ซ๐๐ฒ๐๐ข๐ฌ๐ญ๐ฌ