ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • JAVA 배열
    back-end&DB/Java 2023. 5. 12. 12:53
    728x90

    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
Designed by Tistory.