-
JAVA 배열back-end&DB/Java 2023. 5. 12. 12:53728x90
1. 자료구조
데이터를 보다 쉽게 정리하고 보다 쉽게 정보를 가지고 오는 것!
- 자료구조 예시
- 레퍼런스 변수
1.2 배열의 필요성
학생들의 자바 평균을 구하고 싶다면?
int avg = (stu1.java.sc.....~)
만약 100명 이라면?
1.2.1 배열
같은 타입의 여러 변수 하나의 묶음으로 다루는 것
boolean, char, byte, short, int, long, float, double
래퍼런스 변수 string- 선언 방법
자료형[ ] 변수명 = 자료형 변수형[ ]
자료형[ ] 변수명 = new 자료형[크기(숫자)]자료형 변수명[ ] = new 자료형[크기(숫자)]
int[] intArray2 = new int[5]; //System.out.println(intArray2); intArray2[0] = 10; intArray2[1] = 22; intArray2[2] = 73; intArray2[3] = 2; intArray2[4] = 17; // intArray2[5] = 14; // System.out.println(intArray2[5]); // indexOutOfBoundsException 출력!
[5]의 경우 설정한 범위를 벗어났으므로, indexOutOfBoundsException 에러가 발생을 합니다.
0,1,2,3,4 << 5개의 범위
- for문(반복문)의 활용
System.out.println(intArray2[0]); System.out.println(intArray2[1]); System.out.println(intArray2[2]); System.out.println(intArray2[3]); System.out.println(intArray2[4]); for (int i = 0; i < 5; i++) { System.out.println(intArray2[i]); }
위와 아래는 같은 문장이 출력이 됩니다.
- 배열의 크기를 알려주는 속성(length)
변수명.length
int[] intArray3 = {1, 2, 3, 4, 5, 6, 7}; for (int i = 0; i < intArray3.length; i++) { System.out.println(intArray3[i]); }
- 문제
1~20까지 숫자가 들어 있는 배열을 초기화 하세요.
배열의 값 중 짝수인값과 홀수인값을 출력하는 프로그램을 작성하세요.
int array[] = new int[20]; System.out.print("array 에 있는 짝수는 : "); for (int i = 0; i < array.length; i++) { array[i] = i + 1; if (array[i] % 2 == 0) { System.out.print(array[i] + " "); } } System.out.println("입니다."); // ------------------------------------------- int num = 0; System.out.print("array 에 있는 홀수는 : "); for (int i = 0; i < array.length; i++) { if (array[i] % 2 == 1) { System.out.print(array[i] + " "); num++; } } System.out.println("입니다."); System.out.print("총 " + num + "개 입니다.");
- 배열에서 max, min 구하기
public static void main(String[] args) { int[] intArray = { 2, 10, 3, 5, 56, 41, 7, 18, 94 }; int max = intArray[0], min = intArray[0]; for (int i = 1; i < intArray.length; i++) { if (max < intArray[i]) { max = intArray[i]; } else if (min > intArray[i]) { min = intArray[i]; } } System.out.println("가장 큰 값은 "+max+" 입니다."); System.out.println("가장 작은 값은 "+min+" 입니다.");
- 문제1
5개의 점수를 받아서 점수를 나열하고 최고, 최저, 합계, 평균을 구하시요.
public static void main(String[] args) { Scanner scan = new Scanner(System.in); int num = 5;// N번째 까지 입력 int[] numArr = new int[num]; for (int i = 0; i < num; i++) { System.out.print((i + 1) + "번째 입력 >> "); numArr[i] = scan.nextInt(); } int max = numArr[0]; int min = numArr[0]; int sum = 0; System.out.print("입력된 점수 : "); for (int j = 0; j < numArr.length; j++) { System.out.print(numArr[j] + " "); sum += numArr[j]; if (max < numArr[j]) { max = numArr[j]; }else if (min > numArr[j]) { min = numArr[j]; } } System.out.println(); System.out.println("최고 점수 : " + max); System.out.println("최저 점수 : " + min); System.out.println("총합 : " + sum); System.out.println("평균 : " + (double)(sum/numArr.length)); scan.close(); }
출력값
- 문제2 int[] starcount = { 3, 4, 4, 2, 1 };를 사용하여 숫자만큼 별을 출력하세요.
public static void main(String[] args) { int[] starcount = { 3, 4, 4, 2, 1 }; for (int i = 0; i < starcount.length; i++) { System.out.print(starcount[i] + " : "); for (int j = 0; j < starcount[i]; j++) { System.out.print("*"); } System.out.println(); } }
★ 주소와 값은 다르다.
String[]team1 = {"A", "B", "C", "D"}; String[]team2 = {"수육","부대찌개"}; System.out.println(team1); //주소 A System.out.println(team2); //주소 B team2 = team1; // 주소가 복사 System.out.println(team1[1]); //B System.out.println(team2[1]); //B team2[3] = "골뱅이무침"; System.out.println(team1[3]); //골 System.out.println(team2[3]); //골 System.out.println(team1); //주소A System.out.println(team2); //주소A
수육과 부대찌개는 garbage Collection가 되어 삭제 되었습니다.
자바의 자동 메모리 관리
- 배열의 길이만큼 반복하는 for esch문
for (String temp : team1) { System.out.println(temp); }
728x90'back-end&DB > Java' 카테고리의 다른 글
JAVA 메소드 (0) 2023.05.16 JAVA 2차원 배열 (0) 2023.05.15 JAVA 다중 FOR문 (0) 2023.05.10 JAVA 반복문 (0) 2023.05.09 JAVA 조건문 (0) 2023.05.03