일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 31 |
- Developer
- CICD
- 인디게임
- UNIDEV
- 오블완
- 스프링
- 개발공부
- 라피신
- 프로그래밍
- 전국대학생게임개발동아리연합회
- 인프라
- AWS
- UNICON
- UNICON2023
- 체크인미팅
- 위키북스
- RDS
- 42서울
- 스프링부트
- 도커
- 백엔드개발자
- 자바개발자
- 백엔드
- 배포
- 온라인테스트
- 게임개발동아리
- 생활코딩
- 프리티어
- EC2
- 티스토리챌린지
- Today
- Total
Hyun's Wonderwall
[백엔드] 스터디 2주차 - Java (4) 배열, 버블 정렬, Arrays 클래스, Random 클래스 본문
[백엔드] 스터디 2주차 - Java (4) 배열, 버블 정렬, Arrays 클래스, Random 클래스
Hyun_! 2023. 4. 3. 18:34공부에 사용한 자료
객체지향 프로그래밍 과목 수업자료
[Chapter 03] 자바 기본 프로그래밍 (2) 배열
배열(array)
- 인덱스와 인덱스에 대응하는 데이터들로 이루어진 자료 구조. (배열을 이용하면 한 번에 많은 메모리 공간 할당 가능.)
- 같은 타입의 데이터들이 순차적으로 저장. (인덱스를 이용하여 원소 데이터 접근. 반복문 이용해 처리하기에 적합)
- 배열 인덱스: 0부터 시작. (인덱스는 배열의 시작 위치에서부터 데이터가 있는 상대 위치)
(1) 1차원 배열
배열 선언과 배열 생성의 두 단계 필요
- 선언과 생성 동시에: int [] array = new int[10];
- 선언과 함께 초기화: int [] array = {0, 1, 2};
- <주의> 잘못된 배열 선언 예) int array[3]; //컴파일 오류. 선언 시 배열의 크기를 지정하면 안 된다.
레퍼런스 변수와 배열
배열 인덱스와 원소 접근
- 배열 원소 접근: 배열 변수명과 []사이에 원소의 인덱스를 적어 접근
- 배열 인덱스의 범위: 0에서 시작 ~ (배열 크기 -1)까지
- <주의> 반드시 배열 생성후 접근하기
+) 레퍼런스 치환과 배열 공유: 하나의 배열을 다수의 레퍼런스가 참조 가능
배열의 크기, length 필드
배열은 자바에서 객체로 관리함. 배열 객체 내에 length 필드는 배열의 크기를 나타냄.
int size = array.length; //c와 달리 괄호 없음 주의
배열과 for-each 문: for (배열의 원소타입 변수 : 배열)
- 배열이나 나열의 각 원소를 순차적으로 접근하는데 유용한 for 문
int[] num = {1, 2, 3, 4, 5};
for (int k : num) //반복될 때마다 k는 num[0], num[1], …, num[size-1] 값으로 설정
sum += k;
- int[] num 뿐 아니라 String[] names, enum Week{}의 예시
enum Week{월, 화, 수, 목, 금, 토, 일}
for (Week day : Week.values()) //반복될 때마다 day는 월, 화, …, 일로 설정
System.out.print(day+”요일 ”);
(2) 2차원 배열
int[][] array;
int[][] array = new int[2][5];
초기화까지 진행은 int[][] array = {{0, 1, 2}, {3, 4, 5}, {6, 7, 8}};
2차원 배열의 구조와 length 필드
int array[][] = new int[2][5]; 있을때
array.lengthà2차원 배열의 행의 개수로서 2
array[n].lengthàn번째 행의 열의 개수로서 5
정방형 배열: 각 행의 열의 개수가 같은 배열
비정방형 배열: 각 행의 열의 개수가 다른 배열
int i[][];
i = new int[4][];
i[0] = new int[1];
i[1] = new int[2];
i[2] = new int[3];
i[3] = new int[4];
비정방형 배열의 length
i.length --> 2차원 배열의 행의 개수
i[n].length --> n번째 행의 열의 개수
ㄴ i[0].length --> 0번째 행의 열의 개수: 1
ㄴ i[1].length- -> 0번째 행의 열의 개수: 2
비정방형 배열의 생성과 접근
//열크기만큼 값 세팅
for (int i = 0; i < intArray.length; i++)
for (int j = 0; j < intArray[i].length; j++)
intArray[i][j] = (i+1)*10 + j;
//출력
for (int i = 0; i < intArray.length; i++) {
for (int j = 0; j < intArray[i].length; j++)
System.out.print(intArray[i][j]+" ");
System.out.println();
}
//메소드로 분리하면 더 간편해짐
(3) 메소드에서 배열 리턴
- 메소드에서 만든 배열의 레퍼런스 리턴
- 메소드에서의 리턴타입: 메소드의 리턴 타입과 리턴 받는 배열 타입 일치시키기. 리턴 타입에 배열의 크기를 지정하지 않는다.
+ main() 메소드 보충
자바 응용프로그램의 실행 시작 메소드.
반드시 static, public, void여야 한다.
반드시 매개 변수 타입은 문자열 배열이어야 한다(String[] args)
+) main(String[] args) 메소드의 인자 전달 방식
정렬과 랜덤
bubble sort
직접 두개씩 비교하여 구현가능
또는 Arrays 클래스 사용
import java.util.Arrays;하여 Arrays.sort();
+ Arrays.copyOfRange(); 메서드도 있다
랜덤 수 만들기
1) Math.random(); 메소드 이용
2) Random 클래스 이용
import java.util.Random; 임포트 하고 Random r = new Random(); 해서 랜덤클래스로 r 생성
'Study > Java, Spring' 카테고리의 다른 글
[GDSC Study] 스프링 기반 REST API 개발 - 1주차 (섹션 0, 1) (0) | 2023.11.07 |
---|---|
[백엔드] 스터디 - Spring Boot 어노테이션 몇가지 정리 (0) | 2023.05.15 |
[백엔드] 스터디 1주차 - Java (3) 연산자, 조건, 반복문 (0) | 2023.03.27 |
[백엔드] 스터디 1주차 - Java (2) 입출력, 변수, 자료형, 캐스팅 (0) | 2023.03.27 |
[백엔드] 스터디 1주차 - Java (1) 이론 (0) | 2023.03.27 |