์๋ฃํ์ด ๊ฐ๊ณ , ๊ฐ์ ๊ณตํต์ ์ด ์๋ ๋ณ์๋ค์ ํ ๊ณณ์ ์ผ๋ ฌ๋ก ๋์ดํ์ฌ ๋ฌถ์ ํํ
๐ก ๋ฐฐ์ด ์ ์ธ ๋ฌธ๋ฒ : ์๋ฃํ[] ๋ฐฐ์ด์ด๋ฆ = new ์๋ฃํ[๊ฐ์];
๐ก ๋ฐฐ์ด ์ ์ธ๊ณผ ๋์์ ์ด๊ธฐํ
: ์๋ฃํ[] ๋ฐฐ์ด์ด๋ฆ = new ์๋ฃํ[๊ฐ์ ์๋ต] {๋ฐฐ์ด ์์};
๐ ์ ์ธ ๋ฌธ๋ฒ
String[] studentName = new String[3];
=========================================================================
๐ ์ ์ธ๊ณผ ๋์์ ์ด๊ธฐํ
String[] studentName = new String[] {"ํ๊ธธ๋","์ด์จ","๊น์จ"};
=========================================================================
๐ ์ ์ธ๊ณผ ๋์์ ์ด๊ธฐํ ์ new ์๋ฃํ ์๋ต ๊ฐ๋ฅํ๋ค.
String[] studentName = {"ํ๊ธธ๋","์ด์จ","๊น์จ"};
=========================================================================
๐ ์ ์ธ๋ฌธ ๋ฐ๋ก ์ด๊ธฐํ๋ฌธ ๋ฐ๋ก ํ ๊ฒฝ์ฐ new ์๋ฃํ ์๋ต์ด ๋ถ๊ฐ๋ฅํ๋ค.
String[] student;
student = {"ํ๊ธธ๋","์ด์จ","๊น์จ"};
๐ก ์๋ต์ด ๋ถ๊ฐํ์ฌ student = new String[] {"ํ๊ธธ๋","์ด์จ","๊น์จ"}; ์
๋ ฅํด์ผ ํจ
(1) ๋ฐฐ์ด ๊ฐ์ ์ด๊ธฐํํ์ง ์์ ๊ฒฝ์ฐ
(2) ๋ฐฐ์ด์์๊ฐ ์ ์ฅ๋ ์์น๋ฅผ ์ฐพ์ ๊ฒฝ์ฐ
๐ (1) ๋ฐฐ์ด ๊ฐ์ ์ด๊ธฐํํ์ง ์์ ๊ฒฝ์ฐ
int[] num = int num[3];
๐ก ๋ฐ๋ก ๊ฐ์ ๋์
ํด ์ฃผ์ง ์์ ๊ฒฝ์ฐ [] ์์ ๊ฐ์ ๋ฐฐ์ด์ ๊ธธ์ด๋ฅผ ๋ปํ๋ค.
๐ก num[3]์ ๋ป์ num ๋ฐฐ์ด ์์ ์ด 3๊ฐ์ ์์๊ฐ ๋ค์ด๊ฐ ์ ์๋ค๋ ๋ป์ด๋ค.
======================================================
๐ (2-1) ๋ฐฐ์ด์์๊ฐ ์ ์ฅ๋ ์์น๋ฅผ ์ฐพ์ ๊ฒฝ์ฐ
int[] num = new int[] {3, 2, 1};
โ ์์ ๊ฐ์ด num๋ฐฐ์ด์ ์ ์ธ๊ณผ ๋์์ ์ด๊ธฐํ๋ฅผ ํ๋ค๊ณ ๊ฐ์
โ num๋ฐฐ์ด์ 0๋ฒ์งธ ๊ฐ์ ๋ถ๋ฌ์ค๊ณ ์ถ์ ๊ฒฝ์ฐ ์๋์ ๊ฐ์ด ํ๊ฒ ๋๋ฉด,
System.out.println(num[0]);
โ ๊ฒฐ๊ณผ๋ 3 ์ด ์ถ๋ ฅ๋๋ค.
๐ ์ฌ๊ธฐ์ ์ฃผ์ํ ์ : ๋ฐฐ์ด์ ๊ธธ์ด๋ 3๊ฐ์ธ๋ฐ ์ ์ฒซ ๋ฒ์งธ ๊ฐ์ ๋ถ๋ฌ์ฌ ๋ 1์ด ์๋ 0์ ์
๋ ฅํ๋๊ฐ?
โ ์ ์ธ๋ ๋ฐฐ์ด์ ์์น๋ 1๋ฒ์งธ๋ถํฐ๊ฐ ์๋ 0๋ฒ์งธ๋ถํฐ ์์ํ๊ฒ ๋๋ค.
โ ๋ฐ๋ผ์ 3๊ฐ์ ๊ฐ์ด ๋ค์ด์๋ ๋ฐฐ์ด์ ๊ธธ์ด๋ 3์ด์ง๋ง, ์์ ์์๋ค์ ์ผ์ชฝ๋ถํฐ ์ฐจ๋ก๋ก 0๋ฒ์งธ, 1๋ฒ์งธ, 2๋ฒ์งธ ์์น์ ์ ์ฅ๋์ด ์๋ค.
======================================================
๐ (2-2) ๋ฐฐ์ด์์๊ฐ ์ ์ฅ๋ ์์น๋ฅผ ์ฐพ์ ๊ฒฝ์ฐ
int[] num = new int[3];
โ ์์ ๊ฐ์ด ๋ฐฐ์ด์ ๊ธธ์ด๋ ์ ํ์ผ๋, ๊ฐ์ ์ด๊ธฐํํ์ง ์์๋ค๊ณ ๊ฐ์
โ num[2]์ 1์ด๋ผ๋ ๊ฐ์ ์ด๊ธฐํํ๊ณ ์ถ์ ๊ฒฝ์ฐ
num[2] = 1;
System.out.println(num[2]);
โ ๊ฒฐ๊ณผ๋ 1์ด ์ถ๋ ฅ๋๋ค.
๐ ์ฌ๊ธฐ์ ์ฃผ์ํ ์ : ๊ฐ์ ์ด๊ธฐํํ์ง ์์ ์์์ ๊ฐ์ null ๊ฐ์ผ๊น? 0์ผ๊น?
โ ๋ฐฐ์ด์ ์ ์ธ๋ง ํ๊ณ ์ด๊ธฐํํ์ง ์์ผ๋ฉด ๋ชจ๋ ๊ฐ์ ๊ธฐ๋ณธ๊ฐ์ธ 0์ผ๋ก ์ธํ
๋์ด ์๋ค.
๐ก ๋ฐฐ์ด์ ๊ฐ ์ธ๋ฑ์ค์ ์์นํ ๊ฐ์ ์๊ณ ์ ํ ๋ for๋ฌธ๊ณผ lengthํจ์๋ฅผ ์ด์ฉํ์ฌ ์ฐพ์ ์ ์๋ค.
๐ ๋ฐฐ์ด์ 0๋ฒ์งธ ๊ฐ๋ถํฐ 2๋ฒ์งธ ๊ฐ๊น์ง ๋ชจ๋ ๋ํ๋ด๊ธฐ
int[] num = new int[] {3, 2, 1};
for(int i=0; i<num.length; i++) {
System.out.println("num[" + i + "]๋ฒ์งธ ๊ฐ์ : " + num[i]);
}
โ ๊ฒฐ๊ณผ
num[0]๋ฒ์งธ ๊ฐ์ : 3
num[1]๋ฒ์งธ ๊ฐ์ : 2
num[2]๋ฒ์งธ ๊ฐ์ : 1
๐ ์ฝ๋ ํด์
โ for๋ฌธ์์ 0๋ฒ์งธ๋ถํฐ ์์ํ๋ ์ด์ ๋ : ๋ฐฐ์ด์ ์ธ๋ฑ์ค๋ 0๋ฒ์งธ๋ถํฐ ์์ํ๊ธฐ ๋๋ฌธ์ด๋ค.
โ for๋ฌธ์์ i<num.length ๋ก ์ฐ๋ ์ด์ ๋ : ๋ฐฐ์ด์ ์ธ๋ฑ์ค๋ 1๋ถํฐ๊ฐ ์๋ 0๋ถํฐ ์์์ด๊ธฐ ๋๋ฌธ์ ํญ์ ๋ฐฐ์ด์ ๊ธธ์ด๋ณด๋ค -1์๋ค.
๋ฐ๋ผ์ <=์ด ์๋ <์ ์ด๋ค.
โ for๋ฌธ์์ i<=num.length ํ ๊ฒฝ์ฐ : ์ธ๋ฑ์ค๋ 0๋ฒ์งธ๋ถํฐ ์์ํ๊ธฐ ๋๋ฌธ์
๋ฐฐ์ด๊ณผ ๋๊ฐ์ ๊ธธ์ด๊น์ง for๋ฌธ์ ํ๊ฒ ๋๋ฉด ๋ง์ง๋ง ์ธ๋ฑ์ค ๊ฐ์ ์๊ธฐ ๋๋ฌธ์ ์ค๋ฅ๊ฐ ๋ฐ์ํ๋ค.
class๋ฅผ ๋ง๋ค๊ณ class๋ฅผ ๊ฐ์ฒด๋ก ์ ์ธํ์ฌ ๊ฐ์ฒด ๋ฐฐ์ด์ ์ฌ์ฉํ๋ ๊ฒ์ ๋งํ๋ค.
์ฐธ์กฐ ์๋ฃํ์ผ๋ก ์ฌ์ฉํ class๋ฅผ ๋ง๋ค๊ณ ํด๋น class๋ฅผ main() ํจ์์์ ๊ฐ์ฒด ์์ฑ๊ณผ ๋์์ ๋ฐฐ์ด์ ์ ์ธํ๋ค. [์ฆ ๊ฐ์ฒด๋ฐฐ์ด์ ์์ฑํ๋ค.]
๐ก class์ด๋ฆ + ๋ฐฐ์ด์ด๋ฆ = new class์ด๋ฆ[];
โ ๊ฐ์ฒด๋ฐฐ์ด ์์ฑ๋ง ํ๊ณ ๊ฐ์ ์ด๊ธฐํ X
๐ก class์ด๋ฆ + ๋ฐฐ์ด์ด๋ฆ = new class์ด๋ฆ[] {};
โ ๊ฐ์ฒด๋ฐฐ์ด ์์ฑ๊ณผ ๋์์ ๊ฐ ์ด๊ธฐํ
class Book {
private String bookName;
private String author;
Book() {
}///////////default์์ฑ์
Book(String bookName, String author){
this.bookName = bookName;
this.author = author;
}/////////๋งค๊ฐ๋ณ์๋ฅผ ๊ฐ๋ ์์ฑ์
public String getBookName() {
return bookName;
}
public void setBookName(String bookName) {
this.bookName = bookName;
}
public String getAuthor() {
return author;
}
public void setAuthor(String author) {
this.author = author;
}
public void showBookInfo() {
System.out.println("์ฑ
์ ์ด๋ฆ์: " + bookName + ", ์ ์๋: " + author);
}
}/////////////// Book
public class Test {
public static void main(String[] args) {
Book[] b = new Book[5];
b[0] = new Book("a์ฑ
","๊น์จ");
b[1] = new Book("b์ฑ
","์ด์จ");
b[2] = new Book("c์ฑ
","์ต์จ");
b[3] = new Book("d์ฑ
","์์จ");
b[4] = new Book("e์ฑ
","๋ฐ์จ");
for(int i=0; i<b.length; i++) {
b[i].showBookInfo();
}
}////////// main
}/////////////////////// class
======================================================
โ ๊ฒฐ๊ณผ
์ฑ
์ ์ด๋ฆ์: a์ฑ
, ์ ์๋: ๊น์จ
์ฑ
์ ์ด๋ฆ์: b์ฑ
, ์ ์๋: ์ด์จ
์ฑ
์ ์ด๋ฆ์: c์ฑ
, ์ ์๋: ์ต์จ
์ฑ
์ ์ด๋ฆ์: d์ฑ
, ์ ์๋: ์์จ
์ฑ
์ ์ด๋ฆ์: e์ฑ
, ์ ์๋: ๋ฐ์จ
๐ ์ฃผ์ํ ์ : ๊ฐ์ฒด ๋ฐฐ์ด ์์ฑ ์ ๋ฐ๋ก ๊ฐ์ฒด ์์ฑ์ ์ ํด๋ ๋ ๊น?
โ ๊ฐ์ฒด ๋ฐฐ์ด์ ์์ฑํ๋ค๋ ์์ฒด๊ฐ ๊ฐ์ฒด๋ก ์์ฑํ์ฌ ๋ฐฐ์ด๋ก ์ฌ์ฉํ๋ค๋ ๋ป์ผ๋ก
๊ฐ์ฒด ์์ฑ ํ ๋ฐฐ์ด ์ ์ธํ ํ์ ์์ด ๊ฐ์ฒด ๋ฐฐ์ด ์์ฑ๋ง ํ๋ฉด ๋๋ค.
โ ์์
Book bk = new Book();
Book b = new Book[];
์ด๋ ๊ฒ ์ฐ์ง ์๊ณ ์๋ Book b = new Book[];๋ง ํด์ฃผ๋ฉด
๊ฐ์ฒด ์์ฑ๊ณผ ๋์์ ๋ฐฐ์ด๋ก ์ฌ์ฉํ๋ ๊ฒ์ด๋ค.
๋ง๋ค์ด ๋์ ๋ฐฐ์ด์ ๊ทธ๋๋ก ์ฎ๊ธฐ๋ ๊ธฐ๋ฅ
(1) ์๋ฃํ, ๋ฐฐ์ดํฌ๊ธฐ๊ฐ ๊ฐ์ ๋ฐฐ์ด์ ํ๋ ๋ ๋ง๋ค ๊ฒฝ์ฐ
(2) ๋ฐฐ์ด์ ๋ชจ๋ ์์์ ๊ฐ์ด ๊ฝ ์ฐจ์ ๋ ์ด์ ์ ์ฅํ ์ ์์ ๋ ๋ ํฐ ๋ฐฐ์ด์ ๋ง๋ค์ด ๊ธฐ์กด ๊ฐ์ ๋ณต์ฌ ํด์ค๋ ๊ฒฝ์ฐ
(1) ๊ธฐ์กด ๋ฐฐ์ด๊ณผ ๊ธธ์ด๊ฐ ๊ฐ๊ฑฐ๋, ๋ ๊ธด ๋ฐฐ์ด์ ๋ง๋ค๊ณ for๋ฌธ์ ์ด์ฉํ์ฌ ๋ณต์ฌํด์ค๋ ๋ฐฉ๋ฒ
(2) System.arraycopy() ๋ฉ์๋๋ฅผ ์ด์ฉํ์ฌ ๋ณต์ฌํ๋ ๋ฐฉ๋ฒ
(1) for๋ฌธ์ ์ด์ฉํ์ฌ ๋ณต์ฌํ๋ ๋ฐฉ๋ฒ
import java.util.Arrays;
public class Test {
public static void main(String[] args) {
๐ ๋ฐฐ์ด ๋ง๋ค๊ธฐ
int[] arr = new int[5];
for(int i=0; i<arr.length; i++) {
arr[i] = i+1;
}
System.out.println("[๋ณต์ฌ ์ ๋ฐฐ์ด] arr.length : " + arr.length);
System.out.println(Arrays.toString(arr));
System.out.println(arr);
System.out.println("====================================");
โ ๊ฒฐ๊ณผ
[๋ณต์ฌ ์ ๋ฐฐ์ด] arr.length : 5
๐์ค๋ช
: ๋ณต์ฌ ์ ๋ฐฐ์ด์ ๊ธธ์ด๊ฐ 5์ด๋ค.
[1, 2, 3, 4, 5]
๐์ค๋ช
: toString()๋ฉ์๋๋ ๋ฐฐ์ด์ ๋์ดํ๋ ๊ฒ
[I@26f67b76
๐์ค๋ช
: ๋ฐฐ์ด์ ์ฃผ์๊ฐ์ ๋ํ๋ด๋ ๊ฒ
====================================
======================================================
๐ ์์์ ๋ง๋ ๋ฐฐ์ด ๋ณต์ฌํ๊ธฐ
int[] tmp = new int[arr.length * 2];
for(int i=0; i<arr.length; i++) {
tmp[i] = arr[i];
}
System.out.println("[๋ณต์ ํ ๋ฐฐ์ด] tmp.length : " + tmp.length);
System.out.println(Arrays.toString(tmp));
System.out.println(tmp);
โ ๊ฒฐ๊ณผ
[๋ณต์ ํ ๋ฐฐ์ด] tmp.length : 10
๐์ค๋ช
: ๋ณต์ฌ ํ ๋ฐฐ์ด์ ๊ธธ์ด๊ฐ 5์ด๋ค.
[1, 2, 3, 4, 5, 0, 0, 0, 0, 0]
๐์ค๋ช
: ๋ณต์ฌ ์ ๋ฐฐ์ด์ ๊ทธ๋๋ก ๊ฐ์ ๋ณต์ฌํด ์๊ณ ,
๋๋จธ์ง ๊ฐ์ ๊ธฐ๋ณธ๊ฐ์ธ 0์ผ๋ก ์ฑ์์ง๋ค.
๐์ค๋ช
: ๋ณต์ฌ ํ ๋ฐฐ์ด์ ์ฃผ์ ๊ฐ์ด๋ค.
[I@153f5a29
}////////// main
}/////////////////////// class
(2) System.arraycopy() ๋ฉ์๋๋ฅผ ์ด์ฉํ์ฌ ๋ณต์ฌํ๋ ๋ฐฉ๋ฒ
import java.util.Arrays;
public class Test {
public static void main(String[] args) {
int[] num1 = new int[] {3, 2, 1};
๐์ค๋ช
: num1 ๋ฐฐ์ด ์์ฑ
int[] num2 = new int[num1.length * 2];
๐์ค๋ช
: num1์ ๋ฐฐ์ด ํฌ๊ธฐ * 2๋ก ๋ณต์ฌ
System.arraycopy(num1, 0, num2, 0, num1.length);
๐์ค๋ช
: for๋ฌธ ๋์ ๋ฉ์๋๋ฅผ ํ์ฉํ์ฌ ๋ณต์ฌํ๊ธฐ
System.out.println(Arrays.toString(num2));
๐์ค๋ช
: ์ผ๋ ฌ๋ก ๋ฐฐ์ด ๋์ดํ๋ ๋ฉ์๋
}////////// main
}/////////////////////// class
๐ก System.arraycopy(a, b, c, d, e)
๋งค๊ฐ๋ณ์ | ์ค๋ช |
---|---|
a | ๋ณต์ฌํ ๋ฐฐ์ด ์ด๋ฆ |
b | ๋ณต์ฌํ ๋ฐฐ์ด์ ์ฒซ ๋ฒ์งธ ์์น |
c | ๋ณต์ฌํด์ ๋ถ์ฌ ๋ฃ์ ๋์ ๋ฐฐ์ด ์ด๋ฆ |
d | ๋ณต์ฌํด์ ๋์ ๋ฐฐ์ด์ ๋ถ์ฌ ๋ฃ๊ธฐ๋ฅผ ์์ํ ์ฒซ ๋ฒ์งธ ์์น |
e | a์์ c๋ก ๋ณต์ฌํ ์์ ๊ฐ์ |
๊ธฐ์กด for๋ฌธ ์ฒ๋ผ (์ด๊ธฐํ,์กฐ๊ฑด์,์ฆ๊ฐ์) ์์ด ๊ฐ๋จํ๊ฒ ๋ฐ๋ณต์์ ์ ํ ์ ์๋ค.
for(๋ณ์ : ๋ณต์ฌ ํ ๋ฐฐ์ด) {
๋ฐ๋ณต ์คํ๋ฌธ;
}
int[] num1 = new int[] {3, 2, 1};
for(int num2 : num1) {
System.out.print(num2);
}
โ ๊ฒฐ๊ณผ : 321
๐ ์ฝ๋ ์ค๋ช
: int num2๋ณ์์ num1 ๋ฐฐ์ด์ ๋ณต์ฌํ๋ค๋ ๋ป
๐ ์ฝ๋ ์ค๋ช
: System.out.println(num2); ๋ณต์ฌ๋ ๊ฐ์ด ์ถ๋ ฅ๋๋ค.