ë°°ì´(Array)
ê°ì íì ì ì¬ë¬ ë³ì를 íëì 묶ìì¼ë¡ ë¤ë£¨ë ê².
ë°°ì´ì ìì±ê³¼ ì ì¸
ë°°ì´ì ì¸
| ì ì¸ë°©ë² | ì ì¸ ì |
|---|---|
| íì [] ë³ìì´ë¦; | int[] score; String[] name; |
| íì ë³ìì´ë¦[]; | int score[]; String scroe[]; |
ë°°ì´ìì±
ë³ìì´ë¦ = new íì [길ì´];
ex) scroe = new int [5]; - intíì ì ê° 5ê°ë¥¼ ì§ì í ì ìë ë°°ì´ì ìì±
int [] scroe = new int [5]; - ì ì¸ê³¼ ìì±ì ëììë ê°ë¥
(ëë¶ë¶ ì´ë ê² ì¬ì©)ë°°ì´ì 길ì´ì ì¸ë±ì¤
ìì±ë ë°°ì´ì ê° ì ì¥ê³µê°ì 'ë°°ì´ì ìì(element)'ë¼ê³ íë©°, 'ë°°ì´ì´ë¦[ì¸ë±ì¤]'ì íìì¼ë¡ ë°°ì´ì ììì ì ê·¼íë¤.
ì¸ë±ì¤(index)ë ë°°ì´ì ììë§ë¤ ë¶ì¬ì§ ì¼ë ¨ë²í¸ë¡ ê° ìì를 구ë³íëë° ì¬ì©ëë¤. - ì¸ë±ì¤(index)ì ë²ìë 0ë¶í° 'ë°°ì´ê¸¸ì´ '-1'ê¹ì§
package Array;
public class ArrayEx1 {
public static void main(String[] args) {
int[] score = new int[5];
int k = 1;
score[0] = 50;
score[1] = 60;
score[k+1] = 70;
score[3] = 80;
score[4] = 90;
int tmp = score[k+2] + score[4];
for(int i=0; i < 5; i++) {
System.out.printf("score[%d] : %d%n",i, score[i]);
}
System.out.printf("tmp : %d%n", tmp);
System.out.printf("score[%d]: %d%n", 7, score[7]);
}
}
//ê²°ê³¼
score[0] : 50
score[1] : 60
score[2] : 70
score[3] : 80
score[4] : 90
tmp : 170
Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: Index 7 out of bounds for length 5
at Array.ArrayEx1.main(ArrayEx1.java:21)
ìëì ì¤ë¥ë indexì ë²ìë 0~4ì´ì§ë§, í¸ì¶íë ¤ë ì¸ë±ì¤ê° 7ì´ê¸°ì ì¸ë±ì¤ ê°ì ë²ì´ë¬ë¤ë ì¤ë¥ì´ë¤.
ë°°ì´ì 길ì´
int[] arr = new int[5]; → 길ì´ê° 5ì¸ int ë°°ì´
ë°°ì´ì´ë¦.length
ë°°ì´ì 길ì´ë¥¼ 구í´ì¼íë ê²½ì°ê° ì¢ ì¢ ìë¤. ìë°ììë JVMì´ ëª¨ë ë°°ì´ì 길ì´ë¥¼ ë³ëë¡ ê´ë¦¬í기ì ì¶ì¶ì´ ê°ë¥íë¤.
int[] arr = new int[5];
int tmp = arr.length //tmp = 5
ë°°ì´ì ê¸¸ì´ ë³ê²½í기
- ë í° ë°°ì´ì ìë¡ ìì±íë¤.
- 기존 ë°°ì´ì ë´ì©ì ìë¡ì´ ë°°ì´ì ë³µì¬íë¤.
ë°°ì´ì ì´ê¸°í
int[] score = new int[] {50, 60, 70, 80, 90};
int[] score = {50, 60, 70, 80, 90};
⇒ ë°°ì´ì ì ì¸ê³¼ ìì±ì ë°ë¡ íë ê²½ì° new íì []ì ìëµì´ ë¶ê°íë¤.
ë°°ì´ì ì¶ë ¥
ë°°ì´ì ì´ê¸°íí ë for문ì ì¬ì©íë¯ì´, ë°°ì´ì ì ì¥ë ê°ì for문ì¼ë¡ íë©´ëë¤.
int[] iArr = {100, 90, 80, 70 60};
for(int i=0; i<iArr.length; i++){
System.out.println(iArr[i]);
}
package Array;
import java.util.Arrays;
public class ArrayEx2 {
public static void main(String[] args) {
int[] iArr1 = new int[10];
int[] iArr2 = new int[10];
// int[] iArr3 = new int[] {100, 95, 80, 70, 60};
int[] iArr3 = {100, 95, 80, 70, 60};
char[] chArr = {'a', 'b', 'c', 'd'};
for(int i =0; i<iArr1.length; i++) {
iArr1[i] = i+1;
}
for(int i=0; i<iArr2.length; i++) {
iArr2[i] = (int)(Math.random()*10) + 1;
}
for(int i=0; i < iArr1.length; i++) {
System.out.print(iArr1[i]+", ");
}
System.out.println();
System.out.println(Arrays.toString(iArr2));
System.out.println(Arrays.toString(iArr3));
System.out.println(Arrays.toString(chArr));
System.out.println(iArr3);
System.out.println(chArr);
}
}
//ê²°ê³¼
1, 2, 3, 4, 5, 6, 7, 8, 9, 10,
[8, 10, 8, 7, 7, 8, 6, 3, 5, 9]
[100, 95, 80, 70, 60]
[a, b, c, d]
[I@2d363fb3
abcd
ë°°ì´ì ë³µì¬
ë°°ì´ì íë² ìì±íë©´ ê·¸ 길ì´ë¥¼ ë³ê²½í ì ì기 ë문ì ë ë§ì ì ì¥ê³µê°ì´ í¼ë£¡íë¤ë©´ ë³´ë¤ í° ë°°ì´ì ìë¡ ë§ë¤ê³ ì´ì ë°°ì´ë¡ë¶í° ë´ì©ì ë³µì¬í´ì¼íë¤ê³ íë¤.
for문ì ì´ì©í´ì ë°°ì´ì ë³µì¬íë ë°©ë²ì ë¤ìê³¼ ê°ë¤.
package Array;
public class ArrayEx3 {
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("[ë³ê²½ì ]");
System.out.println("arr.length : "+ arr.length);
for(int i=0; i<arr.length; i++)
System.out.println("arr["+i+"] : "+arr[i]);
int[] tmp = new int[arr.length*2];
for(int i=0; i < arr.length; i++)
tmp[i] = arr[i];
arr =tmp;
System.out.println("ë³ê²½í");
System.out.println(arr.length);
for(int i=0; i<arr.length; i++)
System.out.println("arr["+i+"] : "+arr[i]);
}
}
//ê²°ê³¼
[ë³ê²½ì ]
arr.length : 5
arr[0] : 1
arr[1] : 2
arr[2] : 3
arr[3] : 4
arr[4] : 5
ë³ê²½í
10
arr[0] : 1
arr[1] : 2
arr[2] : 3
arr[3] : 4
arr[4] : 5
arr[5] : 0
arr[6] : 0
arr[7] : 0
arr[8] : 0
arr[9] : 0
System.arraycopy()를 ì´ì©í ë°°ì´ì ë³µì¬
ë°°ì´ì ë³µì¬ë forë¬¸ë³´ë¤ System.arraycopy()를 ì¬ì©íë ê²ì´ í¨ì¨ì ì´ë¤.
package Array;
public class ArrayEx4 {
public static void main(String[] args) {
char[] abc = {'A','B','C','D'};
char[] num = {'0','1','2','3','4','5','6','7','8','9'};
System.out.println(abc);
System.out.println(num);
//ë°°ì´ abcì numì ë¶ì¬ì íëì ë°°ì´(result)ë¡ ë§ë ë¤.
char[] result = new char[abc.length+num.length];
System.arraycopy(num, 0, result, 0, abc.length);
System.arraycopy(num, 0, result, abc.length, num.length);
System.out.println(result);
//ë°°ì´ abc를 ë°°ì´ numì 첫 ë²ì§¸ ìì¹ë¶í° ë°°ì´ abcì 길ì´ë§í¼ ë³µì¬
System.arraycopy(abc, 0, num, 0, abc.length);
System.out.println(num);
//numì ì¸ë±ì¤6ìì¹ì 3ê°ë¥¼ ë³µì¬
System.arraycopy(abc, 0, num, 6, 3);
System.out.println(num);
}
}
//ê²°ê³¼
ABCD
0123456789
01230123456789
ABCD456789
ABCD45ABC9
ë°°ì´ì íì©
ì´í©ê³¼ íê·
package Array;
public class ArrayEx5 {
public static void main(String[] args) {
int sum=0;
float average = 0f;
int[] score = {100, 88, 100, 100, 90};
for (int i=0; i<score.length; i++) {
sum+=score[i];
}
average = sum / (float)score.length;
System.out.println("ì´ì : "+sum);
System.out.println("íê· : "+average);
}
}
//ê²°ê³¼
ì´ì : 478
íê· : 95.6
ìµëê°ê³¼ ìµìê°
package Array;
public class ArrayEx6 {
public static void main(String[] args) {
int[] score = {79, 88, 91, 33, 100, 55, 95};
int max = score[0];
int min = score[0];
for(int i=1; i<score.length; i++) {
if(score[i] > max) {
max = score[i];
}else if(score[i]<min) {
min=score[i];
}
}
System.out.println("ìµëê° : "+max);
System.out.println("ìµìê° : "+min);
}
}
//ê²°ê³¼
ìµëê° : 100
ìµìê° : 33
ì기(shuffle)
package Array;
public class ArrayEx7 {
public static void main(String[] args) {
int[] numArr = new int[10];
for(int i= 0; i<numArr.length; i++) {
numArr[i] = i;
System.out.print(numArr[i]);
}
System.out.println();
for(int i=0; i<100; i++) {
int n = (int)(Math.random() * 10);
int tmp = numArr[0];
numArr[0] = numArr[n];
numArr[n] = tmp;
}
for(int i =0; i<numArr.length; i++){
System.out.print(numArr[i]);
}
}
}
//ê²°ê³¼
0123456789
9427580316
ììì ê°ì¼ë¡ ë°°ì´ ì±ì°ê¸°
package Array;
public class ArrayEx8 {
public static void main(String[] args) {
int[] ball = new int[45];
for(int i=0; i<ball.length; i++)
ball[i]=i+1;
int temp = 0;
int j = 0;
for(int i=0; i<6; i++) {
j = (int)(Math.random() *45);
temp = ball[i];
ball[i] = ball[j];
ball[j] = temp;
}
for(int i = 0; i<6; i++) {
System.out.printf("ball[%d]=%d%n", i, ball[i]);
}
}
}
//ê²°ê³¼
ball[0]=37
ball[1]=20
ball[2]=28
ball[3]=1
ball[4]=7
ball[5]=36
ììì ê°ì¼ë¡ ë°°ì´ ì±ì°ê¸°-2
package Array;
import java.util.Arrays;
public class ArrayEx9 {
public static void main(String[] args) {
int[] code = {-4, -1, 3, 6, 11};
int[] arr = new int[10];
for(int i=0; i<arr.length; i++) {
int tmp = (int)(Math.random()*code.length);
arr[i] = code[tmp];
}
System.out.println(Arrays.toString(arr));
}
}
//ê²°ê³¼
[6, 6, 6, 3, -1, 6, 3, 3, 6, 6]
ì ë ¬í기(sort)
package Array;
public class ArrayEx10 {
public static void main(String[] args) {
int[] numArr = new int[10];
for(int i=0; i< numArr.length; i++)
System.out.print(numArr[i]=(int)(Math.random()*10));
System.out.println();
for(int i=0; i<numArr.length-1; i++) {
boolean changed = false;
for(int j = 0; j< numArr.length-1-i; j++){
if(numArr[j] > numArr[j+1]) {
int temp = numArr[j];
numArr[j] = numArr[j+1];
numArr[j+1] = temp;
changed = true;
}
}
if(!changed) break; //ì리 ë°ê¿ì´ ìì¼ë©´ ë°ë³µë¬¸ì ë¹ ì ¸ëê°ë¤.
for(int k = 0; k<numArr.length; k++)
System.out.print(numArr[k]);
System.out.println();
}
}
}
//ê²°ê³¼
0740894089
0407840899
0047408899
0044078899
0040478899
0004478899
ë¹ëì 구í기
package Array;
public class ArrayEx11 {
public static void main(String[] args) {
int[] numArr = new int[10];
int[] counter = new int[10];
for(int i=0; i<numArr.length; i++) {
numArr[i] = (int)(Math.random()*10);
System.out.print(numArr[i]);
}
System.out.println();
for(int i=0; i<numArr.length; i++) {
counter[numArr[i]]++;
}
for(int i=0; i<numArr.length; i++) {
System.out.println(i+"ì ê°ì : "+counter[i]);
}
}
}
//ê²°ê³¼
9542579250
0ì ê°ì : 1
1ì ê°ì : 0
2ì ê°ì : 2
3ì ê°ì : 0
4ì ê°ì : 1
5ì ê°ì : 3
6ì ê°ì : 0
7ì ê°ì : 1
8ì ê°ì : 0
9ì ê°ì : 2
ì¶ì² : JAVAì ì ì - (ë¨ê¶ì±ì§ì)