오늘 배울 내용
배열
/*
배열은 객체, 객체는 기본적으로 속성과 메소드가 있음
하지만 배열은 유일하게 속성만 가지고 있음
배열은 동일한 타입의 데이터를 하나의 묶음으로 관리하는 데이터 타입
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 |