CodeGym /Java Blog /๋ฌด์ž‘์œ„์˜ /Java์˜ Arrays.copyOf() ๋ฉ”์„œ๋“œ
John Squirrels
๋ ˆ๋ฒจ 41
San Francisco

Java์˜ Arrays.copyOf() ๋ฉ”์„œ๋“œ

๋ฌด์ž‘์œ„์˜ ๊ทธ๋ฃน์— ๊ฒŒ์‹œ๋˜์—ˆ์Šต๋‹ˆ๋‹ค

Java์˜ Arrays.copyOf() ๋ฉ”์„œ๋“œ๋Š” ๋ฌด์—‡์ž…๋‹ˆ๊นŒ?

Java ํด๋ž˜์Šค java.util.Arrays๋Š” ์ด ํ•จ์ˆ˜์— ๋งค๊ฐœ๋ณ€์ˆ˜๋กœ ์ „๋‹ฌ๋œ ๋ฐฐ์—ด์˜ ๋ณต์‚ฌ๋ณธ์„ ๋ฐ˜ํ™˜ํ•˜๊ณ  ํฌ๊ธฐ๋ฅผ ์ง€์ •ํ•˜๋Š” Arrays.copyOf() ๋ผ๋Š” ๋ฉ”์„œ๋“œ๋ฅผ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค . ๋‹ค์Œ์€ ๋น ๋ฅธ ์ดํ•ด๋ฅผ ์œ„ํ•œ ๋ฉ”์„œ๋“œ ํ—ค๋”์ž…๋‹ˆ๋‹ค.

Arrays.copyOf(int[] templateArray, int length);
๋‘ ๋ฒˆ์งธ ๋งค๊ฐœ๋ณ€์ˆ˜ "๊ธธ์ด"๋Š” ์ƒ์„ฑํ•˜๋ ค๋Š” ๋ณต์‚ฌ ๋ฐฐ์—ด์˜ ํฌ๊ธฐ์ž…๋‹ˆ๋‹ค. ๊ทธ๋ž˜์„œ ์—ฌ๊ธฐ์„œ ์šฐ๋ฆฌ๋Š” 3๊ฐ€์ง€ ๊ฒฝ์šฐ๋ฅผ ๊ฐ€์งˆ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
  • ํ…œํ”Œ๋ฆฟ ๋ฐ ์‚ฌ๋ณธ ๋ฐฐ์—ด์˜ ๊ธธ์ด๋Š” ๋™์ผํ•ฉ๋‹ˆ๋‹ค.
  • ๋ณต์‚ฌ ๋ฐฐ์—ด์˜ ๊ธธ์ด๊ฐ€ ํ…œํ”Œ๋ฆฟ ๋ฐฐ์—ด์˜ ๊ธธ์ด๋ณด๋‹ค ํฝ๋‹ˆ๋‹ค.
  • ๋ณต์‚ฌ ๋ฐฐ์—ด์˜ ๊ธธ์ด๋Š” ํ…œํ”Œ๋ฆฟ ๋ฐฐ์—ด์˜ ๊ธธ์ด๋ณด๋‹ค ์ž‘์Šต๋‹ˆ๋‹ค.
์œ„์—์„œ ์–ธ๊ธ‰ํ•œ ์„ธ ๊ฐ€์ง€ ์‹œ๋‚˜๋ฆฌ์˜ค๋ฅผ ๋ชจ๋‘ ์ฒ˜๋ฆฌํ•  ์ˆ˜ ์žˆ๋Š” ๋ฐฉ๋ฒ•์„ ์•Œ์•„๋ณด๊ธฐ ์œ„ํ•ด ์ฝ”๋”ฉ ์˜ˆ์ œ๋ฅผ ์‚ดํŽด๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค. Java์˜ Arrays.copyOf() ๋ฉ”์„œ๋“œ - 1

์ฝ”๋”ฉ ์˜ˆ


import java.util.Arrays;
public class ArraysCopyOfMethod {
	public static void main(String[] args) {
		
	  // Initialize your templateArray which you want a copy of
        int[] templateArray = new int[] {1, 2, 3, 4, 5, 6};  
        System.out.println("Template Array: " + Arrays.toString(templateArray)); 
        	    
        // Create a "copy" of template array using 
        // Arrays.copyOf(int[] array, int arrayLength) method 
        
        // CASE 1: Sizes of both template & copy arrays are same
        int[] copyArray1 = Arrays.copyOf(templateArray, templateArray.length);
        System.out.println("Copy Array 1: " + Arrays.toString(copyArray1));
      
        // CASE 2: Size of copy array > Size of template array
        // extra space in copy array is filled with zeros
        int[] copyArray2 = Arrays.copyOf(templateArray, 10);
        System.out.println("Copy Array 2: " + Arrays.toString(copyArray2));
  
        // CASE 3: Size of copy array < Size of template array
        // copy array is only filled with only elements in overlapping size
        int[] copyArray3 = Arrays.copyOf(templateArray, 3);
        System.out.println("Copy Array 3: " + Arrays.toString(copyArray3));
	}

}

์‚ฐ์ถœ

ํ…œํ”Œ๋ฆฟ ๋ฐฐ์—ด: [1, 2, 3, 4, 5, 6] ๋ฐฐ์—ด 1 ๋ณต์‚ฌ: [1, 2, 3, 4, 5, 6] ๋ฐฐ์—ด 2 ๋ณต์‚ฌ: [1, 2, 3, 4, 5, 6, 0, 0, 0, 0] ์–ด๋ ˆ์ด 3 ๋ณต์‚ฌ: [1, 2, 3]

๊ฒฐ๋ก 

์ด์ œ Java์˜ Arrays.copyOf() ๋ฉ”์„œ๋“œ์— ๋Œ€ํ•ด ๋…ผ๋ฆฌ์ ์œผ๋กœ ํŒŒ์•…ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ํ˜ธ๊ธฐ์‹ฌ์„ ๋ถˆ๋Ÿฌ์ผ์œผํ‚ค๊ธฐ ์œ„ํ•ด ๋‹ค์–‘ํ•œ ์ž…๋ ฅ์„ ์ž์œ ๋กญ๊ฒŒ ์‹คํ—˜ํ•ด ๋ณด์‹ญ์‹œ์˜ค.
์ฝ”๋ฉ˜ํŠธ
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION