본문 바로가기

JAVA

231207 Java

오늘 배울 내용

 

배열

/*
배열은 객체, 객체는 기본적으로 속성과 메소드가 있음
하지만 배열은 유일하게 속성만 가지고 있음

배열은 동일한 타입의 데이터를 하나의 묶음으로 관리하는 데이터 타입

ex) int 타입의 변수가 100개 필요하다면 ? -> 배열은 변수 하나에 데이터 100개를 저장
    원하는 갯수 만큼 저장할 수 있음

배열의 속성
[배열명].length - 배열의 길이를 반환 (int)
객체의 속성과 메소드 등을 호출할 때는 . 을 사용 - [배열명].속성명

배열의 특징
처음 생성할 때 길이를 지정해야 함
배열의 길이는 수정이 불가능
배열의 시작은 0 부터 시작
index

배열 선언
int arr01[] = new int[길이];
int[] arr02 = new int[5]; -> arr02 를 다섯 칸으로 나누어 칸마다 값 저장
캐릭터를 3개 저장할 수 있는 배열
char[] ch01 = new char[3];

배열(객체) 생성 시 기본값으로 초기화
정수는 기본값이 0
실수는 기본값이 0.0
캐릭터는 기본값이 ''
논리 타입은 기본값이 거짓
R 타입의 기본값은 null
 */

 

배열 선언해보기

int arr2[] = new int[5];
int arr3[] = null;

System.out.println(arr2); // [I@1b6d3586
System.out.println(arr2[0]); // 0

 

double 형 선언

double d[] = new double[3];
System.out.println(d[2]); // 0.0
System.out.println(d.length); // 3
System.out.println(d[d.length-1]); // d[3-1]

 

// For Each 문
for (int i : arr2) {
    System.out.println(i);
}

 

String 배열의 기본 값

String sArr[] = new String[3];
System.out.println(Arrays.toString(sArr)); // [null, null, null]

 

배열 생성과 동시에 초기화 하기

// String sArr[] = new String[]{"홍길동", "김길동", "이길동", "최길동"};
String sArr[] = {"홍길동", "김길동", "이길동", "최길동"};
System.out.println(Arrays.toString(sArr)); // [홍길동, 김길동, 이길동, 최길동]
System.out.println(sArr.length); // 자동으로 4칸 생성

 

문자열을 한개씩 나눠 배열로 저장해보기

String name = sArr[0];
System.out.println(name); // 홍길동
char cArr[] = name.toCharArray(); // "홍길동" 을 한글자씩 잘라 배열로 저장
System.out.println(Arrays.toString(cArr)); // [홍, 길, 동]

 

각 문자열과 배열의 길이 확인해보기

System.out.println(name.length()); // 3, 홍길동 의 길이
System.out.println(cArr.length); // 3 [홍, 길, 동] 의 길이
System.out.println(sArr[0].length()); // 3 [홍길동, 김길동, 이길동, 최길동] 중 0번 위치 배열의 문자열 길이

 

랜덤 로또 번호 6개를 배열로 저장하기

int iArr[] = new int[6];
for (int j = 0; j < 6; j++) {
    int i = (int) (Math.random() * 45) + 1;
    iArr[j] = i;
    System.out.println(iArr[j]);
}
System.out.println(Arrays.toString(iArr));

 

Random 객체를 이용하여 만들기

Random random = new Random(); // import java.util.Random; 이 import 되어야 함
for (int i = 0; i < iArr.length; i++) {
  iArr[i] = random.nextInt(45) + 1; // 0 ~ 44 까지 총 45개의 숫자를 무작위로 섞음, + 1 하여 1 ~ 45 만들기
  }
System.out.println(Arrays.toString(iArr));

 

1 ~ 20 까지 저장하는 arr01 만들기

int arr01[] = new int[20];
for (int i = 0; i < arr01.length; i++) {
    arr01[i] = i+1;
}

 

문자열 변환하기

int num = 5;
String text = "5";

text = String.valueOf(num); // int 타입을 String 으로 변환할 때

text = "5"; // 문자열이 포함되어 있으면 변환되지 않음
num = Integer.parseInt(text); // 문자열을 int 타입으로 변환

 

명령어 대신 처리할 수 있는 방법

text = "";
text += 5; // 기존 빈 문자열에 연결이 가능, 문자+숫자, 숫자+문자, 문자+문자
text += text; // "5" + "5"
System.out.println(text); // "55"

text = 5 + 5 + ""; // 5 + 5 -> 10 + "" -> "10"
System.out.println(text); // "10"

text = 5 + "" + 5; // 5 + "" -> "5" + 5 -> "55"
System.out.println(text); // "55"

 

가위 바위 보 해서 승률 출력하기

public static void main(String[] args) {
    Scanner sc = new Scanner(System.in);
    int input, com, game[];
    float win = 0;

    System.out.println("가위바위보 게임에 오신 것을 환영합니다.");
    System.out.println("진행할 게임 수를 입력해 주세요.");
    game = new int[sc.nextInt()];

    System.out.println("1. 가위, 2. 바위, 3. 보");
    for (int i = 0; i < game.length; i++) {
        input = sc.nextInt();
        // input = (int) (Math.random() * 3 + 1); // 이렇게 하면 서로 랜덤한 값으로 대결
        com = (int) (Math.random() * 3 + 1);

        int score = input - com;

        if (score == -2 || score == 1){
            System.out.println("승리");
            game[i] = 1;
        } else if (score == 0){
            System.out.println("비김");
        } else {
            System.out.println("짐");
        }
    }
    for (int i : game) {
        win += i;
    }
    System.out.println("승률 : " + ((win / (float) game.length) * 100) + " %");
    sc.close();
}

 

순차 탐색

모든 데이터를 하나하나 비교하며 검색하는 것

 

이진 탐색

정렬된 데이터를 좌, 우 둘로 나누어 탐색 범위를 좁혀나가는 것

 

List Array 체험

public static void main(String[] args) {
    List<Integer> iArr = new ArrayList<>(); // import java.util.List; 필요
    iArr.add(123);
    iArr.add(123);
    iArr.add(123);

    System.out.println(iArr.size()); // 3
    System.out.println(iArr); // [123, 123, 123]
    System.out.println(iArr.get(0)); // 123

    for (int i = 0; i < iArr.size(); i++) { 
        System.out.println(iArr.get(i));
    }
}

 

main 메소드 안에 시작 변수 넣기

 

Run with Parameters 클릭

 

Build and run 항목 java 버전 밑에 원하는 값 입력

public static void main(String[] args) {
    String text[] = new String[5];
    text[0] = "홍길동";
    text[1] = "김길동";
    text[2] = "최길동";
    text[3] = "정길동";
    text[4] = "박길동";

    for (int i = 0; i < text.length; i++) {
        System.out.println(text[i]);
    }
    System.out.println(text.length);
    System.out.println(args.length);
    for (int i = 0; i < args.length; i++) {
        System.out.println(args[i]);
    }
}

'JAVA' 카테고리의 다른 글

231211 Java  (2) 2023.12.11
231208 Java  (0) 2023.12.08
231206 Java  (2) 2023.12.06
231205 Java  (0) 2023.12.05
231204 Java  (2) 2023.12.04