์นดํ…Œ๊ณ ๋ฆฌ ์—†์Œ

7. ๋ฐฐ์—ด๊ณผ ArrayList

alswlfl 2026. 6. 14. 23:19

๋ฐฐ์—ด์ด๋ž€

๋ฐฐ์—ด์€ ์ž๋ฃŒํ˜•์ด ๊ฐ™์€ ์ž๋ฃŒ ์—ฌ๋Ÿฌ ๊ฐœ๋ฅผ ํ•œ ๋ฒˆ์— ๊ด€๋ฆฌํ•  ์ˆ˜ ์žˆ๋Š” ์ž๋ฃŒ ๊ตฌ์กฐ๋กœ, ์ž๋ฃŒ๊ฐ€ ์—ฐ์†์œผ๋กœ ๋‚˜์—ด๋œ ํ˜•ํƒœ์ด๋‹ค.

์ž๋ฃŒํ˜•[] ๋ฐฐ์—ด์ด๋ฆ„ = new ์ž๋ฃŒํ˜•[๊ฐœ์ˆ˜];
์ž๋ฃŒํ˜• ๋ฐฐ์—ด์ด๋ฆ„[] = new ์ž๋ฃŒํ˜•[๊ฐœ์ˆ˜];

 

ex) intํ˜• ์š”์†Œ๊ฐ€ 10๊ฐœ์ธ ๋ฐฐ์—ด ์„ ์–ธํ•˜๋ฉด, intํ˜•์„ ์ €์žฅํ•  ์ˆ˜ ์žˆ๋Š” ํฌ๊ธฐ๋Š” 4๋ฐ”์ดํŠธ์ด๋ฏ€๋กœ ์ด ๋ฐฐ์—ด์€ ์ด 40๋ฐ”์ดํŠธ์˜ ๋ฉ”๋ชจ๋ฆฌ๊ฐ€ ํ• ๋‹น๋จ

int[] studentIDs = new int[10]; // intํ˜• ์š”์†Œ๊ฐ€ 10๊ฐœ์ธ ๋ฐฐ์—ด ์„ ์–ธ

๋ฉ”๋ชจ๋ฆฌ ํ• ๋‹น

 

๋ฐฐ์—ด ์„ ์–ธ๊ณผ ์ดˆ๊ธฐํ™”

์ž๋ฐ”์—์„œ ๋ฐฐ์—ด ์„ ์–ธํ•˜๋ฉด ๊ทธ์™€ ๋™์‹œ์— ๊ฐ ์š”์†Œ์˜ ๊ฐ’์ด ์ดˆ๊ธฐํ™”๋จ. ๋ฐฐ์—ด์˜ ์ž๋ฃŒํ˜•์— ๋”ฐ๋ผ ์ •์ˆ˜๋Š” 0, ์‹ค์ˆ˜๋Š” 0.0, ๊ฐ์ฒด ๋ฐฐ์—ด์€ null๋กœ ์ดˆ๊ธฐํ™”๋จ

๋˜ํ•œ, ๋ฐฐ์—ด ์„ ์–ธ๊ณผ ๋™์‹œ์— ํŠน์ • ๊ฐ’์œผ๋กœ ์ดˆ๊ธฐํ™”ํ•  ์ˆ˜๋„ ์žˆ์Œ. ๋ฐฐ์—ด์ด ์ดˆ๊ธฐํ™” ์š”์†Œ์˜ ๊ฐœ์ˆ˜๋งŒํผ ์ƒ์„ฑ๋˜๋ฏ€๋กœ [] ์•ˆ์˜ ๊ฐœ์ˆ˜๋Š” ์ƒ๋žตํ•จ

int[] studentIDs = new int[] {101, 102, 103}; // ๊ฐœ์ˆ˜ ์ƒ๋žต
int[] studentIDs = {101, 102, 103};

๋ฐฐ์—ด ์‚ฌ์šฉํ•˜๊ธฐ

์ธ๋ฑ์Šค ์—ฐ์‚ฐ์ž []๋Š” ๋ฐฐ์—ด ์š”์†Œ๊ฐ€ ์ €์žฅ๋œ ๋ฉ”๋ชจ๋ฆฌ ์œ„์น˜๋ฅผ ์ฐพ์•„์ฃผ๋Š” ์—ญํ• ์„ ํ•จ. ๋ฐฐ์—ด์—์„œ [i] ์ธ๋ฑ์Šค ์—ฐ์‚ฐ์„ ์ˆ˜ํ–‰ํ•˜๋ฉด i๋ฒˆ์งธ ์š”์†Œ์˜ ์œ„์น˜๋ฅผ ์ฐพ์•„ ํ•ด๋‹น ์œ„์น˜์˜ ๋ฉ”๋ชจ๋ฆฌ์— ๊ฐ’์„ ๋„ฃ๊ฑฐ๋‚˜ ์ด๋ฏธ ์ €์žฅ๋˜์–ด ์žˆ๋Š” ๊ฐ’์„ ๊ฐ€์ ธ์™€์„œ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Œ

  • ๋ฐฐ์—ด ๊ธธ์ด๊ฐ€ n์ด๋ผ๊ณ  ํ•˜๋ฉด, ๋ฐฐ์—ด ์ˆœ์„œ๋Š” 0๋ฒˆ๋ถ€ํ„ฐ n-1๋ฒˆ๊นŒ์ง€์ž„
  • length ์†์„ฑ: ๋ฐฐ์—ด ๊ธธ์ด๋ฅผ ๋‚˜ํƒ€๋ƒ„. ์ฆ‰, ๋ฐฐ์—ด์˜ ์ „์ฒด ์š”์†Œ ๊ฐœ์ˆ˜ ์˜๋ฏธ
public class example {
    public static void main(String[] args) {
        double[] data = new double[5];

        data[0] = 10.0;
        data[1] = 20.0;
        data[2] = 30.0;

        for(int i=0; i<data.length; i++) {
            System.out.println(data[i]);
        }
    }
}
/*
10.0
20.0
30.0
0.0
0.0
* */

๋ฌธ์ž ์ €์žฅ ๋ฐฐ์—ด ๋งŒ๋“ค๊ธฐ

๋ฌธ์ž ์ž๋ฃŒํ˜• ๋ฐฐ์—ด์„ ๋งŒ๋“ค๊ณ  ์•ŒํŒŒ๋ฒณ ๋Œ€๋ฌธ์ž๋ฅผ A~Z๊นŒ์ง€ ์ €์žฅํ•œ ํ›„ ๊ฐ ์š”์†Œ ๊ฐ’์„ ์•ŒํŒŒ๋ฒณ ๋ฌธ์ž์™€ ์ •์ˆ˜ ๊ฐ’(์•„์Šคํ‚ค์ฝ”๋“œ ๊ฐ’)์œผ๋กœ ์ถœ๋ ฅํ•˜๊ธฐ

public class example {
    public static void main(String[] args) {
        char[] alphabets = new char[26];
        char ch = 'A';

        for(int i=0; i<alphabets.length; i++, ch++) {
            alphabets[i] = ch;
        }

        for(int i=0; i<alphabets.length;i++){
            System.out.println(alphabets[i]+","+(int) alphabets[i]);
        }
    }
}

๊ฐ์ฒด ๋ฐฐ์—ด ์‚ฌ์šฉํ•˜๊ธฐ

์ฐธ์กฐ ์ž๋ฃŒํ˜• ๋ณ€์ˆ˜๋„ ์—ฌ๋Ÿฌ ๊ฐœ๋ฅผ ๋ฐฐ์—ด๋กœ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Œ

ex) Book ํด๋ž˜์Šค ์ƒ์„ฑ ํ›„ ์ฑ… 5๊ถŒ์„ ๊ฐ์ฒด ๋ฐฐ์—ด๋กœ ๋งŒ๋“ค๊ธฐ

package array;

public class Book {
    private String bookName;
    private String author;

    public Book() {}

    public 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);
    }
}
package array;

public class BookArray {
    public static void main(String[] args){
        Book[] library = new Book[5]; // Book ํด๋ž˜์Šคํ˜•์œผ๋กœ ๊ฐ์ฒด ๋ฐฐ์—ด ์ƒ์„ฑ

        for(int i=0; i<library.length;i++){
            System.out.println(library[i]);
        }
    }
}
/*
null
null
null
null
null
* */

 

์œ„ ์ฝ”๋“œ๋Š” Book ์ฃผ์†Œ ๊ฐ’์„ ๋‹ด์„ ๊ณต๊ฐ„์ด 5๊ฐœ ๋งŒ๋“ค์–ด์ง€๊ณ  ์ž๋™์œผ๋กœ ๊ฐ ๊ณต๊ฐ„์€ '๋น„์–ด์žˆ๋‹ค'๋Š” ์˜๋ฏธ์˜ null ๊ฐ’์œผ๋กœ ์ดˆ๊ธฐํ™”๋จ

์ธ์Šคํ„ด์Šค ์ฃผ์†Œ ๊ฐ’์„ ๋‹ด์„ ๊ณต๊ฐ„ 5๊ฐœ ์ƒ์„ฑ

 

๊ฐ ๋ฐฐ์—ด ์š”์†Œ์— ์ธ์Šคํ„ด์Šค๋ฅผ ์ƒ์„ฑํ•ด ๋„ฃ๊ธฐ ์œ„ํ•ด Book ํด๋ž˜์Šค์—์„œ ๊ตฌํ˜„ํ•œ ์ƒ์„ฑ์ž ์‚ฌ์šฉ

package array;

public class BookArray {
    public static void main(String[] args){
        Book[] library = new Book[5]; // Book ํด๋ž˜์Šคํ˜•์œผ๋กœ ๊ฐ์ฒด ๋ฐฐ์—ด ์ƒ์„ฑ

        library[0] = new Book("ํƒœ๋ฐฑ์‚ฐ๋งฅ", "์กฐ์ •๋ž˜");
        library[1] = new Book("๋ฐ๋ฏธ์•ˆ", "ํ—ค๋ฅด๋งŒ ํ—ค์„ธ");
        library[2] = new Book("์–ด๋–ป๊ฒŒ ์‚ด ๊ฒƒ์ธ๊ฐ€", "์œ ์‹œ๋ฏผ");
        library[3] = new Book("ํ† ์ง€", "๋ฐ•๊ฒฝ๋ฆฌ");
        library[4] = new Book("์–ด๋ฆฐ์™•์ž", "์ƒํ…์ฅํŽ˜๋ฆฌ");

        for(int i=0; i<library.length;i++){
            library[i].showBookInfo();
        }
        for(int i=0; i<library.length; i++){
            System.out.println(library[i]);
        }
    }
}
/*
ํƒœ๋ฐฑ์‚ฐ๋งฅ,์กฐ์ •๋ž˜
๋ฐ๋ฏธ์•ˆ,ํ—ค๋ฅด๋งŒ ํ—ค์„ธ
์–ด๋–ป๊ฒŒ ์‚ด ๊ฒƒ์ธ๊ฐ€,์œ ์‹œ๋ฏผ
ํ† ์ง€,๋ฐ•๊ฒฝ๋ฆฌ
์–ด๋ฆฐ์™•์ž,์ƒํ…์ฅํŽ˜๋ฆฌ
array.Book@a09ee92
array.Book@30f39991
array.Book@452b3a41
array.Book@4a574795
array.Book@f6f4d33
* */

๋ฐฐ์—ด ๋ณต์‚ฌํ•˜๊ธฐ

๊ธฐ์กด ๋ฐฐ์—ด๊ณผ ์ž๋ฃŒํ˜• ๋ฐ ๋ฐฐ์—ด ํฌ๊ธฐ๊ฐ€ ๋˜‘๊ฐ™์€ ๋ฐฐ์—ด์„ ์ƒˆ๋กœ ๋งŒ๋“ค๊ฑฐ๋‚˜ ๋ฐฐ์—ด์˜ ๋ชจ๋“  ์š”์†Œ์— ์ž๋ฃŒ๊ฐ€ ๊ฝ‰ ์ฐจ์„œ ๋” ํฐ ๋ฐฐ์—ด์„ ๋งŒ๋“ค์–ด ๊ธฐ์กด ๋ฐฐ์—ด์— ์ €์žฅ๋œ ์ž๋ฃŒ๋ฅผ ๊ฐ€์ ธ์˜ค๋ ค ํ•  ๋•Œ ๋ฐฐ์—ด์„ ๋ณต์‚ฌํ•จ

 

[๋ฐฐ์—ด ๋ณต์‚ฌ ๋ฐฉ๋ฒ•]

1. ๊ธฐ์กด ๋ฐฐ์—ด๊ณผ ๋ฐฐ์—ด ๊ธธ์ด๊ฐ€ ๊ฐ™๊ฑฐ๋‚˜ ๋” ๊ธด ๋ฐฐ์—ด์„ ๋งŒ๋“ค๊ณ  for๋ฌธ์„ ์‚ฌ์šฉํ•ด ๊ฐ ์š”์†Œ ๊ฐ’์„ ๋ฐ˜๋ณตํ•ด์„œ ๋ณต์‚ฌํ•˜๋Š” ๋ฐฉ๋ฒ•

2. System.arraycopy(src, srcPos, dest, destPos, length) ๋ฉ”์„œ๋“œ๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๋ฐฉ๋ฒ•

๋งค๊ฐœ๋ณ€์ˆ˜ ์„ค๋ช…
src ๋ณต์‚ฌํ•  ๋ฐฐ์—ด ์ด๋ฆ„
srcPos ๋ณต์‚ฌํ•  ๋ฐฐ์—ด์˜ ์ฒซ ๋ฒˆ์งธ ์œ„์น˜
dest ๋ณต์‚ฌํ•ด์„œ ๋ถ™์—ฌ ๋„ฃ์„ ๋Œ€์ƒ ๋ฐฐ์—ด ์ด๋ฆ„
destPos ๋ณต์‚ฌํ•ด์„œ ๋Œ€์ƒ ๋ฐฐ์—ด์— ๋ถ™์—ฌ ๋„ฃ๊ธฐ๋ฅผ ์‹œ์ž‘ํ•  ์ฒซ ๋ฒˆ์งธ ์œ„์น˜
length src์—์„œ dest๋กœ ์ž๋ฃŒ๋ฅผ ๋ณต์‚ฌํ•  ์š”์†Œ ๊ฐœ์ˆ˜

 

ex) System.arraycopy()๋กœ ๋ฐฐ์—ด ๋ณต์‚ฌํ•˜๊ธฐ

package array;

public class ArrayCopy {
    public static void main(String[] args){
        int[] array1 = {10, 20, 30, 40, 50};
        int[] array2 = {1,2,3,4,5};

        System.arraycopy(array1, 0, array2, 1, 4);
        for(int i=0; i<array2.length; i++){
            System.out.println(array2[i]);
        }
    }
}
/*
1
10
20
30
40
* */

 

๊ฐ์ฒด ๋ฐฐ์—ด ๋ณต์‚ฌํ•˜๊ธฐ

package array;

public class ObjectCopy1 {
    public static void main(String[] args) {
        Book[] bookArray1 = new Book[3];
        Book[] bookArray2 = new Book[3];

        bookArray1[0] = new Book("ํƒœ๋ฐฑ์‚ฐ๋งฅ", "์กฐ์ •๋ž˜");
        bookArray1[1] = new Book("๋ฐ๋ฏธ์•ˆ", "ํ—ค๋ฅด๋งŒ ํ—ค์„ธ");
        bookArray1[2] = new Book("์–ด๋–ป๊ฒŒ ์‚ด ๊ฒƒ์ธ๊ฐ€", "์œ ์‹œ๋ฏผ");
        System.arraycopy(bookArray1, 0, bookArray2, 0, 3);

        for(int i=0; i<bookArray2.length; i++){
            bookArray2[i].showBookInfo();
        }
    }
}
/*
ํƒœ๋ฐฑ์‚ฐ๋งฅ,์กฐ์ •๋ž˜
๋ฐ๋ฏธ์•ˆ,ํ—ค๋ฅด๋งŒ ํ—ค์„ธ
์–ด๋–ป๊ฒŒ ์‚ด ๊ฒƒ์ธ๊ฐ€,์œ ์‹œ๋ฏผ
* */

 

์œ„ ์ฝ”๋“œ์—์„œ bookArray2 ๋ฐฐ์—ด์˜ ์ธ์Šคํ„ด์Šค๋ฅผ ๋”ฐ๋กœ ๋งŒ๋“ค์ง€ ์•Š์•„๋„ ๊ฐ ์š”์†Œ ๊ฐ’์ด ์ž˜ ์ถœ๋ ฅ๋˜๋Š” ์ด์œ ๋Š” ์ธ์Šคํ„ด์Šค๋ฅผ ๋”ฐ๋กœ ์ƒ์„ฑํ•˜๋Š” ๊ฒŒ ์•„๋‹ˆ๋ผ ๊ธฐ์กด ์ธ์Šคํ„ด์Šค์˜ ์ฃผ์†Œ ๊ฐ’๋งŒ ๋ณต์‚ฌํ•˜๋Š” ์–•์€ ๋ณต์‚ฌ(shallow copy)๊ฐ€ ์ด๋ฃจ์–ด์ง€๊ธฐ ๋•Œ๋ฌธ

 

1) ์–•์€ ๋ณต์‚ฌ(shallow copy)

๊ฐ์ฒด ๋ฐฐ์—ด์„ ๋ณต์‚ฌํ•  ๋•Œ ์ธ์Šคํ„ด์Šค๋ฅผ ๋”ฐ๋กœ ์ƒ์„ฑํ•˜๋Š” ๊ฒŒ ์•„๋‹ˆ๋ผ ๊ธฐ์กด ์ธ์Šคํ„ด์Šค์˜ ์ฃผ์†Œ ๊ฐ’๋งŒ ๋ณต์‚ฌํ•˜๋Š” ๊ฒƒ์œผ๋กœ, ๊ฒฐ๊ตญ ๋‘ ๋ฐฐ์—ด์˜ ์„œ๋กœ ๋‹ค๋ฅธ ์š”์†Œ๊ฐ€ ๊ฐ™์€ ์ธ์Šคํ„ด์Šค๋ฅผ ๊ฐ€๋ฆฌํ‚ด

๋”ฐ๋ผ์„œ, ๋ณต์‚ฌ๋˜๋Š” ๋ฐฐ์—ด์˜ ์ธ์Šคํ„ด์Šค ๊ฐ’์ด ๋ณ€๊ฒฝ๋˜๋ฉด ๋‘ ๋ฐฐ์—ด ๋ชจ๋‘ ์˜ํ–ฅ์„ ๋ฐ›๊ฒŒ ๋จ

package array;

public class ObjectCopy1 {
    public static void main(String[] args) {
        Book[] bookArray1 = new Book[3];
        Book[] bookArray2 = new Book[3];

        bookArray1[0] = new Book("ํƒœ๋ฐฑ์‚ฐ๋งฅ", "์กฐ์ •๋ž˜");
        bookArray1[1] = new Book("๋ฐ๋ฏธ์•ˆ", "ํ—ค๋ฅด๋งŒ ํ—ค์„ธ");
        bookArray1[2] = new Book("์–ด๋–ป๊ฒŒ ์‚ด ๊ฒƒ์ธ๊ฐ€", "์œ ์‹œ๋ฏผ");
        System.arraycopy(bookArray1, 0, bookArray2, 0, 3);

        for(int i=0; i<bookArray2.length; i++){
            bookArray2[i].showBookInfo();
        }

        // bookArray1 ๋ฐฐ์—ด์˜ ์ฒซ ๋ฒˆ์žฌ ์š”์†Œ ๊ฐ’ ๋ณ€๊ฒฝ
        bookArray1[0].setBookName("๋‚˜๋ชฉ");
        bookArray1[0].setAuthor("๋ฐ•์™„์„œ");

        System.out.println("=== bookArray1 ===");
        for(int i=0; i<bookArray1.length; i++){
            bookArray1[i].showBookInfo();
        }

        System.out.println("=== bookArray2 ===");
        for(int i=0; i<bookArray2.length; i++){
            bookArray2[i].showBookInfo(); // bookArray2 ๋ฐฐ์—ด ์š”์†Œ ๊ฐ’๋„ ๋ณ€๊ฒฝ๋˜์–ด ์ถœ๋ ฅ
        }
    }
}
/*
ํƒœ๋ฐฑ์‚ฐ๋งฅ,์กฐ์ •๋ž˜
๋ฐ๋ฏธ์•ˆ,ํ—ค๋ฅด๋งŒ ํ—ค์„ธ
์–ด๋–ป๊ฒŒ ์‚ด ๊ฒƒ์ธ๊ฐ€,์œ ์‹œ๋ฏผ
=== bookArray1 ===
๋‚˜๋ชฉ,๋ฐ•์™„์„œ
๋ฐ๋ฏธ์•ˆ,ํ—ค๋ฅด๋งŒ ํ—ค์„ธ
์–ด๋–ป๊ฒŒ ์‚ด ๊ฒƒ์ธ๊ฐ€,์œ ์‹œ๋ฏผ
=== bookArray2 ===
๋‚˜๋ชฉ,๋ฐ•์™„์„œ
๋ฐ๋ฏธ์•ˆ,ํ—ค๋ฅด๋งŒ ํ—ค์„ธ
์–ด๋–ป๊ฒŒ ์‚ด ๊ฒƒ์ธ๊ฐ€,์œ ์‹œ๋ฏผ
* */

 

2) ๊นŠ์€ ๋ณต์‚ฌ(deep copy)

๋ฐ˜๋ณต๋ฌธ์„ ์‚ฌ์šฉํ•˜๊ฑด System.arraycopy() ๋ฉ”์„œ๋“œ๋ฅผ ์‚ฌ์šฉํ•˜๊ฑด ๊ฐ์ฒด ๋ฐฐ์—ด์„ ๋ณต์‚ฌํ•˜๋ฉด ํ•ญ์ƒ ์ธ์Šคํ„ด์Šค ์ฃผ์†Œ๊ฐ€ ๋ณต์‚ฌ๋จ. ์ธ์Šคํ„ด์Šค๋ฅผ ๋”ฐ๋กœ ๊ด€๋ฆฌํ•˜๊ณ  ์‹ถ๋‹ค๋ฉด ์ง์ ‘ ์ธ์Šคํ„ด์Šค๋ฅผ ๋งŒ๋“ค๊ณ  ๊ทธ ๊ฐ’์„ ๋ณต์‚ฌํ•˜๋Š” ๊นŠ์€ ๋ณต์‚ฌ๋ฅผ ์ˆ˜ํ–‰ํ•ด์•ผ ํ•จ

package array;

public class ObjectCopy1 {
    public static void main(String[] args) {
        Book[] bookArray1 = new Book[3];
        Book[] bookArray2 = new Book[3];

        bookArray1[0] = new Book("ํƒœ๋ฐฑ์‚ฐ๋งฅ", "์กฐ์ •๋ž˜");
        bookArray1[1] = new Book("๋ฐ๋ฏธ์•ˆ", "ํ—ค๋ฅด๋งŒ ํ—ค์„ธ");
        bookArray1[2] = new Book("์–ด๋–ป๊ฒŒ ์‚ด ๊ฒƒ์ธ๊ฐ€", "์œ ์‹œ๋ฏผ");

        // ๋””ํดํŠธ ์ƒ์„ฑ์ž๋กœ bookArray2 ๋ฐฐ์—ด ์ธ์Šคํ„ด์Šค ์ƒ์„ฑ
        bookArray2[0] = new Book();
        bookArray2[1] = new Book();
        bookArray2[2] = new Book();

        // bookArray1 ๋ฐฐ์—ด ์š”์†Œ๋ฅผ ์ƒˆ๋กœ ์ƒ์„ฑํ•œ bookArray2 ๋ฐฐ์—ด ์ธ์Šคํ„ด์Šค์— ๋ณต์‚ฌ
        for(int i=0; i<bookArray1.length; i++){
            bookArray2[i].setBookName(bookArray1[i].getBookName());
            bookArray2[i].setAuthor(bookArray1[i].getAuthor());
        }

        for(int i=0; i<bookArray2.length; i++) {
            bookArray2[i].showBookInfo();
        }

        // bookArray1 ์ฒซ ๋ฒˆ์งธ ๋ฐฐ์—ด ์š”์†Œ ๊ฐ’ ์ˆ˜์ •
        bookArray1[0].setBookName("๋‚˜๋ชฉ");
        bookArray1[0].setAuthor("๋ฐ•์™„์„œ");

        System.out.println("=== bookArray1 ===");
        for(int i=0; i<bookArray1.length; i++){
            bookArray1[i].showBookInfo();
        }

        System.out.println("=== bookArray2 ===");
        for(int i=0; i<bookArray2.length; i++){
            bookArray2[i].showBookInfo();
        }
    }
}
/*
ํƒœ๋ฐฑ์‚ฐ๋งฅ,์กฐ์ •๋ž˜
๋ฐ๋ฏธ์•ˆ,ํ—ค๋ฅด๋งŒ ํ—ค์„ธ
์–ด๋–ป๊ฒŒ ์‚ด ๊ฒƒ์ธ๊ฐ€,์œ ์‹œ๋ฏผ
=== bookArray1 ===
๋‚˜๋ชฉ,๋ฐ•์™„์„œ
๋ฐ๋ฏธ์•ˆ,ํ—ค๋ฅด๋งŒ ํ—ค์„ธ
์–ด๋–ป๊ฒŒ ์‚ด ๊ฒƒ์ธ๊ฐ€,์œ ์‹œ๋ฏผ
=== bookArray2 ===
ํƒœ๋ฐฑ์‚ฐ๋งฅ,์กฐ์ •๋ž˜
๋ฐ๋ฏธ์•ˆ,ํ—ค๋ฅด๋งŒ ํ—ค์„ธ
์–ด๋–ป๊ฒŒ ์‚ด ๊ฒƒ์ธ๊ฐ€,์œ ์‹œ๋ฏผ
* */

ํ–ฅ์ƒ๋œ for๋ฌธ๊ณผ ๋ฐฐ์—ด

for(๋ณ€์ˆ˜: ๋ฐฐ์—ด) {
	๋ฐ˜๋ณต ์‹คํ–‰๋ฌธ;
}
public class example {
    public static void main(String[] args) {
        String[] strArray = {"Java", "Android", "C", "JavaScript", "Python"};

        for(String lang:strArray) {
            System.out.println(lang);
        }
    }
}

๋‹ค์ฐจ์› ๋ฐฐ์—ด

์ด์ฐจ์› ์ด์ƒ์œผ๋กœ ๊ตฌํ˜„ํ•œ ๋ฐฐ์—ด๋กœ, ํ‰๋ฉด์ด๋‚˜ ๊ณต๊ฐ„ ๊ฐœ๋…์„ ๊ตฌํ˜„ํ•˜๋Š” ๋ฐ ์‚ฌ์šฉํ•จ

์ด์ฐจ์› ๋ฐฐ์—ด

์ž๋ฃŒํ˜•[][] ๋ฐฐ์—ด์ด๋ฆ„ = new ์ž๋ฃŒํ˜•[ํ–‰๊ฐœ์ˆ˜][์—ด๊ฐœ์ˆ˜];
int[][] arr = new int[2][3];
int[][] arr = {{1,2,3}, {4,5,6}};
public class example {
    public static void main(String[] args) {
        int[][] arr = {{1,2,3}, {4,5,6}};

        for(int i=0; i<arr.length; i++){
            for(int j=0; j<arr[i].length; j++){
                System.out.println(arr[i][j]);
            }
            System.out.println(); // ํ–‰ ์ถœ๋ ฅ ๋๋‚œ ํ›„ ํ•œ ์ค„ ๋„์›€;
        }
    }
}

ArrayList ํด๋ž˜์Šค ์‚ฌ์šฉํ•˜๊ธฐ

๊ธฐ์กด ๋ฐฐ์—ด์˜ ๋‹จ์ ๊ณผ ArrayList

๊ธฐ๋ณธ ๋ฐฐ์—ด์€ ํ”„๋กœ๊ทธ๋žจ์—์„œ ์‚ฌ์šฉํ•˜๋ ค๋ฉด ํ•ญ์ƒ ๋ฐฐ์—ด ๊ธธ์ด๋ฅผ ์ •ํ•˜๊ณ  ์‹œ์ž‘ํ•ด์•ผ ํ•จ. ๋ฐฐ์—ด์„ ์‚ฌ์šฉํ•˜๋Š” ์ค‘์— ๋ฐฐ์—ด ๊ธธ์ด ๋ณ€๊ฒฝํ•  ์ˆ˜ ์—†๊ณ , ์ค‘๊ฐ„์— ๋ฐฐ์—ด ์š”์†Œ๋ฅผ ์‚ญ์ œํ•  ์ˆ˜๋„ ์—†์Œ

 

์ž๋ฐ”๋Š” ๊ฐ์ฒด ๋ฐฐ์—ด์„ ์ข€ ๋” ์‰ฝ๊ฒŒ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋„๋ก ๊ฐ์ฒด ๋ฐฐ์—ด ํด๋ž˜์Šค ArrayList๋ฅผ ์ œ๊ณตํ•จ.

ArrayList ํด๋ž˜์Šค๋Š” ๊ฐ์ฒด ๋ฐฐ์—ด์„ ๊ด€๋ฆฌํ•  ์ˆ˜ ์žˆ๋Š” ๋ฉค๋ฒ„ ๋ณ€์ˆ˜์™€ ๋ฉ”์„œ๋“œ๋ฅผ ์ œ๊ณต

ArrayList ํด๋ž˜์Šค์˜ ์ฃผ์š” ๋ฉ”์„œ๋“œ

๋ฉ”์„œ๋“œ ์„ค๋ช…
boolean add(E e) ์š”์†Œ ํ•˜๋‚˜๋ฅผ ๋ฐฐ์—ด์— ์ถ”๊ฐ€ํ•จ. E๋Š” ์š”์†Œ์˜ ์ž๋ฃŒํ˜•์„ ์˜๋ฏธ
int size() ๋ฐฐ์—ด์— ์ถ”๊ฐ€๋œ ์š”์†Œ ์ „์ฒด ๊ฐœ์ˆ˜ ๋ฐ˜ํ™˜
E get(int index) ๋ฐฐ์—ด์˜ index ์œ„์น˜์— ์žˆ๋Š” ์š”์†Œ ๊ฐ’ ๋ฐ˜ํ™˜
E remove(int index) ๋ฐฐ์—ด์˜ index ์œ„์น˜์— ์žˆ๋Š” ์š”์†Œ ๊ฐ’์„ ์ œ๊ฑฐํ•˜๊ณ  ๊ทธ ๊ฐ’์„ ๋ฐ˜ํ™˜
boolean isEmpty() ๋ฐฐ์—ด์ด ๋น„์–ด์žˆ๋Š”์ง€ ํ™•์ธ

ArrayList ํด๋ž˜์Šค ํ™œ์šฉํ•˜๊ธฐ

ArrayList<E> ๋ฐฐ์—ด์ด๋ฆ„ = new ArrayList<E>(); // <> ์•ˆ์— ์‚ฌ์šฉํ•  ๊ฐ์ฒด์˜ ์ž๋ฃŒํ˜• ์“ฐ๋ฉด๋จ
  • ArrayList ํด๋ž˜์Šค๋Š” java.util ํŒจํ‚ค์ง€์— ๊ตฌํ˜„๋˜์–ด ์žˆ๋Š” ํด๋ž˜์Šค๋กœ, ์‚ฌ์šฉํ•˜๊ธฐ ์œ„ํ•ด์„œ๋Š” ์ปดํŒŒ์ผ๋Ÿฌ์—๊ฒŒ ArrayList๊ฐ€ ์–ด๋””์— ๊ตฌํ˜„๋˜์–ด ์žˆ๋Š”์ง€ ์•Œ๋ ค์ค˜์•ผ ํ•˜๊ธฐ ๋•Œ๋ฌธ์— 'import java.util.ArrayList;' ๋ฌธ์žฅ์„ ๋ฐ˜๋“œ์‹œ ์จ ์ฃผ์–ด์•ผ ํ•จ
package array;
import java.util.ArrayList;

public class ArrayListTest {
    public static void main(String[] args) {
        ArrayList<Book> library = new ArrayList<Book>();

        library.add(new Book("ํƒœ๋ฐฑ์‚ฐ๋งฅ", "์กฐ์ •๋ž˜"));
        library.add(new Book("๋ฐ๋ฏธ์•ˆ", "ํ—ค๋ฅด๋งŒ ํ—ค์„ธ"));
        library.add(new Book("์–ด๋–ป๊ฒŒ ์‚ด ๊ฒƒ์ธ๊ฐ€", "์œ ์‹œ๋ฏผ"));
        library.add(new Book("ํ† ์ง€", "๋ฐ•๊ฒฝ๋ฆฌ"));
        library.add(new Book("์–ด๋ฆฐ์™•์ž", "์ƒํ…์ฅํŽ˜๋ฆฌ"));

        for(Book book : library){
            book.showBookInfo();
        }
        System.out.println();
    }
}