Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
Tags
- 회고록
- TiL_1st_0419
- #스파르타내일배움캠프
- Java의 이점
- 인스턴스
- 해우소
- 스파르타내일배움캠프
- KPT
- 스파르타내일배움캠프TIL
- diary
- Git
- 객체지향 언어
- Github_token
- 감사기록
- Diary 해우소
- 성장기록
- JVM
- static
- 변수의 다양성
- #내일배움캠프
- 포맷은 최후의 보루
- 스레드
- 생성자
- #스파르타내일배움캠프TIL
- 메서드
- Java
- 클래스
- Token
- GitHub
- 내일배움캠프
Archives
- Today
- Total
몬그로이
자바의 정석 5. 배열(Array) 본문
int result = add(new int[]{1,2,3,4,5}); //new 를 생략할 수 없다
//
System.out.println(Arrays.toString(iArr)); //배열을 문자로 바꿔 출력하기
//
char[] chArr = {'a', 'b', 'c', 'd'};
System.out.println(chArr); // abcd 로 출력됨
//
char[] abc = {'A', 'B', 'C', 'D'};
char[] num1 = {'0', '1', '2', '3', '4', '5', '6', '7', '8', '9',};
char[] result = new char[abc.length + num1.length];
System.arraycopy(abc, 0, num1, 0, abc.length);
System.arraycopy(abc, 0, num1, 6, 3); //num1[6] 위치부터 즉, 7번째 칸 부터
int[] numArr = new int[10];
for (int i = 0; i < numArr.length; i++) {
numArr[i] = i;
}
for (int i = 0; i < 100; i++) {
int n = (int) (Math.random() * 10); //random 은 0.0 이상 1.0 미만의 수 반환
int tmp = numArr[0];
numArr[0] = numArr[n];
numArr[n] = tmp;
}//애초에 생성한 배열이 중복값이 없는 상태이며
//n은 몇 번째 자릿수인지만 지정하는 것이므로
// 요소에 중복값이 나올 수 없음
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;
//자리바꿈이 일어나지 않은 경우(if문 충족x 인 경우) break
버블 정렬(bubble sort)
앞 요소와 뒷 요소를 비교하여
앞 요소가 더 크면 뒷 요소와 바꾼다
i < numArr.length - 1로 두는 이유는
numArr[0] 에 있던 요소가 제일 큰 수라고 가정했을 때
numArr[9] 로 이동하는 칸은 아무리 커도 length - 1 칸이기 때문
numArr.length - 1 - i 로 두는 이유는
한 번 돌고 나면 제일 끝 요소가 채워지므로
제일 끝 요소는 비교할 필요가 없기 때문
int[] numArr = new int[10]; //{0,0,0,...,0}
int[] counter = new int[10]; //{0,0,0,...,0}
for (int i = 0; i < numArr.length; i++) {
numArr[i] = (int) (Math.random() * 10); //numArr 각 요소에 임의의 수 배정
System.out.print(numArr[i]);
}
System.out.println();
for (int i = 0; i < numArr.length; i++) {
counter[numArr[i]]++;
}
//counter 의 "numArr[i] + 1 번째 요소" 가 0 -> 1 이 됨
// numArr 배열의 서로 다른 요소의 값이 같다면 counter 배열의 그 요소값 + 1 번째 자리는 ++ 됨
// 즉 요소값이 0 -> 1 -> 2 -> ..이고 최대 10까지 가능한 것
for (int i = 0; i < numArr.length; i++) {
System.out.println(i + "의 개수 : " + counter[i]);
}
//counter의 인덱스 = numArr의 요소값이므로
//counter의 인덱스에 해당하는 값은 numArr의 요소값이 몇 개씩 들어있었는지 알 수 있음
char[] hex = {'C', 'A', 'F', 'E'};
String[] binary = { "0000", "0001", "0010","0011",
"0100", "0101", "0110", "0111",
"1000", "1001", "1010", "1011",
"1100", "1101", "1110", "1111"};
String result = "";
for (int i = 0; i < hex.length; i++) {
if (hex[i] >= '0' && hex[i] <= '9') {
result += binary[hex[i] - '0'];
} else {
result += binary[hex[i] - 'A' + 10]; //binary 10~15번 index 중 지정됨
}
//hex[0] = 'C' : 유니코드로 67
// * 'A' : 유니코드로 65 -> 'C' 와 'A' 의 차 = 2
}
String 클래스 주요 메서드
char charAt(int indext) : 문자열에서 해당 index에 위치한 문자를 반환
int length() : 문자열의 길이 반환
String substring(int from, int to) : 문자열에서 해당 범위(from ~ to)에 있는 문자열 반환(to는 미포함)
boolean equals(Object obj) : 문자열의 내용이 obj 와 같은지 확인 (대소문자 구분)
*equalsIgnoreCase() : 대소문자 구분 없이 확인
**변수 값 비교는 연산자 '==' 사용
char[] toCharArray() : 문자열을 문자배열로 변환하여 반환
String source = "SOSHELP";
String[] morse = { /*26개의 index 생략*/};
String result = "";
for (int i = 0; i < source.length(); i++) {
result += morse[source.charAt(i) - 'A'];
} // index 가 "0번째일 때" A를 가리키는 부호가 나오려면 A를 빼야함
// 'A' - 'A' = 65 - 65 = 0
for (int i = 0; i < score.length; i++) {
for (int j = 0; j < score[i].length; j++) {
score[i][j] = 0;
}
} //2차원 배열 초기화
int[][] score = new int[5][];
score[0] = new int[4];
score[1] = new int[3];
score[2] = new int[2];
score[3] = new int[2];
score[4] = new int[3];
'Organizing Docs > Java Docs' 카테고리의 다른 글
데이터베이스Driver >> JDBCTemplate (0) | 2024.06.26 |
---|---|
자바의 정석 6. 객체지향 프로그래밍1 (1) | 2024.06.19 |
쓰기 지연 저장소와 지연 로딩 (0) | 2024.06.04 |
Regrex 정규표현식(Regular Expression) (0) | 2024.05.31 |
JPA - Entity 연관 관계 (0) | 2024.05.27 |