[Java] ๋ฐฐ์—ด

์ •๋ณด๊ตฌ๋‹ˆยท2021๋…„ 12์›” 29์ผ
0

Java

๋ชฉ๋ก ๋ณด๊ธฐ
31/39
post-thumbnail

๋ฐฐ์—ด


  • ์ž๋ฃŒํ˜•์ด ๊ฐ™์€ ๋‘˜ ์ด์ƒ์˜ ๊ฐ’์„ ์ €์žฅํ•  ์ˆ˜ ์žˆ๋Š” ๋ฉ”๋ชจ๋ฆฌ ๊ณต๊ฐ„์„ ์˜๋ฏธํ•œ๋‹ค.
  • ๊ตฌ์กฐ์— ๋”ฐ๋ผ 1์ฐจ์› ๋ฐฐ์—ด๊ณผ 2์ฐจ์› ์ด์ƒ์˜ ๋‹ค์ฐจ์› ๋ฐฐ์—ด๋กœ ๋‚˜๋‰œ๋‹ค.
  • ๋ฐฐ์—ด๋„ ์ธ์Šคํ„ด์Šค์ด๋‹ค.
  • ๊ธฐ๋ณธ ์ž๋ฃŒํ˜•(int, double ๋“ฑ) ๋ฟ๋งŒ ์•„๋‹ˆ๋ผ ์ธ์Šคํ„ด์Šค๋ฅผ ์ €์žฅํ•  ์ˆ˜ ์žˆ๋Š” ๋ฐฐ์—ด์˜ ์ƒ์„ฑ๋„ ๊ฐ€๋Šฅํ•˜๋‹ค.




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

  • ํƒ€์ž…์ด ๊ฐ™์€ ๋‘˜ ์ด์ƒ์˜ ๋ฐ์ดํ„ฐ๋ฅผ ์ €์žฅํ•  ์ˆ˜ ์žˆ๋Š” 1์ฐจ์› ๊ตฌ์กฐ์˜ ๋ฉ”๋ชจ๋ฆฌ ๊ณต๊ฐ„์„ ์˜๋ฏธํ•œ๋‹ค.
  • '์„ ์˜ ํ˜•ํƒœ'๋กœ ์กด์žฌํ•˜๋Š” ๋ฐฐ์—ด์ด๋‹ค.

๐Ÿ”Ž 1์ฐจ์› ๋ฐฐ์—ด ์ƒ์„ฑํ•˜๊ธฐ

/* ๋ฐฐ์—ด ๊ธธ์ด๊ฐ€ 5์ธ intํ˜• ๋ฐฐ์—ด ์ƒ์„ฑ */

// ๋ฐฉ๋ฒ•1
int[] arr = new int[5];  // ์กฐ๊ธˆ ๋” ์„ ํ˜ธํ•˜๋Š” ๋ฐฉ๋ฒ•
int arr[] = new int[5];


// ๋ฐฉ๋ฒ•2
int[] arr;         // ์ฐธ์กฐ๋ณ€์ˆ˜ ์„ ์–ธ
arr = new int[5];  // ๋ฐฐ์—ด ์ธ์Šคํ„ด์Šค ์ƒ์„ฑ

  • int[] arr : intํ˜• 1์ฐจ์› ๋ฐฐ์—ด ์ธ์Šคํ„ด์Šค๋ฅผ ์ฐธ์กฐํ•  ์ˆ˜ ์žˆ๋Š” ์ฐธ์กฐ๋ณ€์ˆ˜ ์„ ์–ธ
  • new int[5] : intํ˜• ๊ฐ’ 5๊ฐœ๋ฅผ ์ €์žฅํ•  ์ˆ˜ ์žˆ๋Š” ๋ฐฐ์—ด ์ธ์Šคํ„ด์Šค ์ƒ์„ฑ





๐Ÿ”Ž ๋ฐฐ์—ด์— ๊ฐ’ ์ €์žฅํ•˜๊ธฐ

// ๋ฐฉ๋ฒ•1
int[] arr = new int[3];
int[0] = 1;  // ์ฒซ๋ฒˆ์งธ ์š”์†Œ์— ์ •์ˆ˜ 1 ์ €์žฅ
int[1] = 2;  // ๋‘๋ฒˆ์งธ ์š”์†Œ์— ์ •์ˆ˜ 2 ์ €์žฅ 
int[2] = 3;  // ์„ธ๋ฒˆ์งธ ์š”์†Œ์— ์ •์ˆ˜ 3 ์ €์žฅ


// ๋ฐฉ๋ฒ•2 (๋ฐฐ์—ด ์ƒ์„ฑ๊ณผ ๋™์‹œ์— ์ดˆ๊ธฐํ™”)
int[] arr = new int[] {1, 2, 3};


// ๋ฐฉ๋ฒ•3 (๋ฐฐ์—ด ์ƒ์„ฑ๊ณผ ๋™์‹œ์— ์ดˆ๊ธฐํ™”)
int[] arr = {1, 2, 3}





๐Ÿ”Ž ๋ฐฐ์—ด ์ฐธ์กฐํ•˜๊ธฐ

int[] arr = {1, 2, 3}

int num = arr[0] + arr[1] + arr[3];  // arr[0]=1, arr[1]=2, arr[2]=3 ์ฐธ์กฐ
System.out.println(num);


// ์ถœ๋ ฅ ๊ฒฐ๊ณผ
6





๐Ÿ”Ž ๋ฐฐ์—ด์˜ ์žฅ์ 

  • ๋ฐ˜๋ณต๋ฌธ์„ ์ด์šฉํ•ด ๋ชจ๋“  ๋ฐฐ์—ด ์š”์†Œ์— ์ ‘๊ทผ์ด ๊ฐ€๋Šฅํ•˜๋‹ค.
String[] str = {"one", "two", "three", "four", "five"};
		
// ๋ฐ˜๋ณต๋ฌธ์œผ๋กœ ๋ณ€์ˆ˜ i๋ฅผ ์ด์šฉํ•ด ๋ชจ๋“  ๋ฐฐ์—ด ์š”์†Œ์— ์ ‘๊ทผ
for (int i=0; i<str.length; i++) {
	int cnum = 0;
	cnum += str[i].length();
	System.out.println(i + "๋ฒˆ์งธ ๊ธ€์ž์ˆ˜: " + cnum + "๊ธ€์ž");
}


// ์ถœ๋ ฅ ๊ฒฐ๊ณผ
0๋ฒˆ์งธ ๊ธ€์ž์ˆ˜: 3๊ธ€์ž
1๋ฒˆ์งธ ๊ธ€์ž์ˆ˜: 3๊ธ€์ž
2๋ฒˆ์งธ ๊ธ€์ž์ˆ˜: 5๊ธ€์ž
3๋ฒˆ์งธ ๊ธ€์ž์ˆ˜: 4๊ธ€์ž
4๋ฒˆ์งธ ๊ธ€์ž์ˆ˜: 4๊ธ€์ž






๋ฐฐ์—ด์˜ ์ฐธ์กฐ ๊ฐ’๊ณผ ๋ฉ”์†Œ๋“œ

  • ๋ฐฐ์—ด๋„ ์ธ์Šคํ„ด์Šค์ด๋ฏ€๋กœ ๋ฉ”์†Œ๋“œ ํ˜ธ์ถœ ์‹œ ์ฐธ์กฐ ๊ฐ’์˜ ์ „๋‹ฌ์ด ๊ฐ€๋Šฅํ•˜๋‹ค.
public static void main(String[] args) {
    int[] arr = {1, 2, 3, 4, 5 ,6 ,7};

    int sum = sumOfArr(arr);  // ๋ฐฐ์—ด์˜ ์ฐธ์กฐ๊ฐ’ ์ „๋‹ฌ
    System.out.println(sum);		
}
	
static int sumOfArr(int[] arr) {
	int sum = 0;
	for (int i=0; i<arr.length; i++)
		sum += arr[i];
	return sum;
}


// ์ถœ๋ ฅ ๊ฒฐ๊ณผ
28






๋ฐฐ์—ด์˜ ์ดˆ๊ธฐํ™”์™€ ๋ณต์‚ฌ

๐Ÿ”Ž ์ดˆ๊ธฐํ™” ๋ฉ”์†Œ๋“œ

  • ๋ฐฐ์—ด์ด ์ƒ์„ฑ๋˜๋ฉด ๋ชจ๋“  ์š”์†Œ๋Š” 0 ๋˜๋Š” null๋กœ ์ดˆ๊ธฐํ™” ๋œ๋‹ค.
  • ๊ธฐ๋ณธ๊ฐ’ ์ด์™ธ์˜ ๊ฐ’์œผ๋กœ ์ดˆ๊ธฐํ™”๋ฅผ ํ•˜๊ณ  ์‹ถ์€ ๊ฒฝ์šฐ, ๋ฐ˜๋ณต๋ฌธ์„ ์ด์šฉํ•ด ์›ํ•˜๋Š” ๊ฐ’์„ ๋ฐฐ์—ด์— ์ €์žฅํ•  ์ˆ˜๋„ ์žˆ์ง€๋งŒ ์ดˆ๊ธฐํ™” ๋ฉ”์†Œ๋“œ ํ˜ธ์ถœ์„ ํ†ตํ•ด ์›ํ•˜๋Š” ๊ฐ’์„ ๋ฐฐ์—ด์— ์ €์žฅํ•  ์ˆ˜ ์žˆ๋‹ค.
  • java.util.Arrays ํด๋ž˜์Šค์— ์ •์˜๋˜์–ด ์žˆ๋Š” ๋ฉ”์†Œ๋“œ์ด๋‹ค.
  • ์›ํ•˜๋Š” ๊ฐ’์œผ๋กœ ๋ฐฐ์—ด ์ „๋ถ€ ๋˜๋Š” ์ผ๋ถ€๋ฅผ ์ฑ„์šธ๋•Œ ์‚ฌ์šฉํ•œ๋‹ค.

// ๋‘๋ฒˆ์งธ ์ธ์ž๋กœ ์ „๋‹ฌ๋œ ๊ฐ’(int val)์œผ๋กœ ๋ฐฐ์—ด ์ดˆ๊ธฐํ™”
public static viod fill(int[] a, int val)


// ์ธ๋ฑ์Šค ์ง€์ • ๋ฒ”์œ„(startIndex ~ (endIndex-1))๊นŒ์ง€ val์˜ ๊ฐ’์œผ๋กœ ๋ฐฐ์—ด ์ดˆ๊ธฐํ™”
public static void fill(int[] a, int startIndex, int endIndex, int val)





๐Ÿ”Ž ๋ณต์‚ฌ ๋ฉ”์†Œ๋“œ

  • java.util.Arrays ํด๋ž˜์Šค์— ์ •์˜๋˜์–ด ์žˆ๋Š” ๋ฉ”์†Œ๋“œ์ด๋‹ค.
  • ํ•œ ๋ฐฐ์—ด์— ์ €์žฅ๋œ ๊ฐ’์„ ๋‹ค๋ฅธ ๋ฐฐ์—ด์— ๋ณต์‚ฌํ•  ๋•Œ ์‚ฌ์šฉํ•œ๋‹ค.

public static void arraycopy(Object arr1, int arr1Pos, object arr2, int arr2Pos, int length)
    // arr1Pos(๋ณต์‚ฌ ์›๋ณธ์˜ ์œ„์น˜)
	// arr2Pos(๋ณต์‚ฌ ๋Œ€์ƒ์˜ ์œ„์น˜)
	// length(๋ณต์‚ฌํ•  ์š”์†Œ์˜ ์ˆ˜)









enhanced for๋ฌธ

  • ๋ฐฐ์—ด์— ์ €์žฅ๋œ ๋ชจ๋“  ์š”์†Œ์— ์ ‘๊ทผํ•˜๊ธฐ ์œ„ํ•œ ์ƒˆ๋กœ์šด ๋ฐ˜๋ณต๋ฌธ์ด๋‹ค. (for-each๋ฌธ์œผ๋กœ๋„ ๋ถˆ๋ฆผ)
  • ์ฝ”๋“œ์˜ ์–‘์ด ์ค„๊ณ  ๋ฐฐ์—ด์˜ ๊ธธ์ด์™€ ์š”์†Œ์— ์‹ ๊ฒฝ ์“ธ ํ•„์š”๊ฐ€ ์—†๋‹ค๋Š” ์žฅ์ ์ด ์žˆ๋‹ค.

// ๊ธฐ์กด for๋ฌธ
int[] ar = {1, 2, 3, 4, 5};
for (int i=0; i<ar.lengthl i++) {
	Sytem.out.println(ar[i]);
}


// for-each๋ฌธ
int[] ar = {1, 2, 3, 4, 5};
for (int e : ar) {  
	Sytem.out.println(e);
}









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

  • 2์ฐจ์› ๋ฐฐ์—ด์€ ๋‹ค์ˆ˜์˜ ๋ณ€์ˆ˜๊ฐ€ '๋ฉด์˜ ํ˜•ํƒœ'๋กœ ์กด์žฌํ•˜๋Š” ๋ฐฐ์—ด์ด๋‹ค.

๐Ÿ”Ž 2์ฐจ์› ๋ฐฐ์—ด ์ƒ์„ฑํ•˜๊ธฐ

์ž๋ฃŒํ˜•[][] ๋ณ€์ˆ˜๋ช… = new ์ž๋ฃŒํ˜•[ํ–‰ ํฌ๊ธฐ][์—ด ํฌ๊ธฐ]





๐Ÿ”Ž 2์ฐจ์› ๋ฐฐ์—ด์˜ ์ดˆ๊ธฐํ™”

  • 2์ฐจ์› ๋ฐฐ์—ด์˜ ์ƒ์„ฑ๊ณผ ๋™์‹œ์— ์ดˆ๊ธฐํ™”๊ฐ€ ๊ฐ€๋Šฅํ•˜๋‹ค.
  • 2์ฐจ์› ๋ฐฐ์—ด์€ ๋…๋ฆฝ๋œ 1์ฐจ์› ๋ฐฐ์—ด์˜ ๋ชจ์ž„์œผ๋กœ ๋ฌถ์Œ์œผ๋กœ ๊ตฌํ˜„์ด ๋˜๊ธฐ ๋•Œ๋ฌธ์— ๊ฐ€๋กœ ๊ธธ์ด๊ฐ€ ํ–‰ ๋ณ„๋กœ ๋‹ค๋ฅธ 2์ฐจ์› ๋ฐฐ์—ด์ด ์ƒ์„ฑ ๊ฐ€๋Šฅํ•˜๋‹ค.

0๊ฐœ์˜ ๋Œ“๊ธ€