
배열
대량의 데이터들을 쉽게 관리 하기 위해서 사용
배열은?
인덱스와 인덱스에 대응하는 데이터들로 이루어진
연속적인 자료구조로서 같은 종류의 데이터들이 순차적으로 저장된다.
동일한 데이터 여러개를 저장하는데
특정 번호를 사용하여 저장하거나 가져올 수 있다.

Queue 자료구조
뻥뚫린 자료구조에 데이터를 저장하는 형식 어떤 통로에 자료를 보관하는 것
a 를 넣음 = a를 push 했다고함
b 를 넣음 = b push
c 를 넣음 = c push

푸쉬를 해주면 차곡차곡 쌓인다 대신 자료를 꺼내면 제일 마지막부터 나옴
a 나오고(pop) a 사라짐
b 나오고(pop) b 사라짐 반복
FIFO 먼저 들어온놈이 먼저 나간다
FIRST IN FIRST OUT (선입선출)
Tree구조


Stack 구조
비커모양임
b 넣음 push b b쌓임

꺼낼때 queue 와 반대로 먼저 들어온놈이 가장 나중에나감(역순)
FIRST IN LAST OUT 선입후출 FILO
Array 구조
배열을 왜 사용해야할까?
무작위로 명단이 이루어져있으면 사용하기 힘듬 쉽게 부르기위해서는? 순서를 매겨주면된다!
우리 학교 다닐때 우리 이름에 번호 새긴거 생각해보자!
예전엔 변수를 따로따로 만들어 저장했다면 이번엔 칸을 나눠 공간을 만들고 데이터를 저장한다 (대신 데이터는 같은 종류)
ex>문자열은 문자열
배열에 번호를 매겨놓은것 = 배열인덱스! 이 인덱스는 0부터 시작함!!

인덱스는 0부터 시작하지만? 길이는 1부터 시작하기 때문에 이 길이는 7이다. 인덱스는 길이보다 1이 작다!
변수는 컴터껏다 키면 사라진다. 램에 저장되어 그냥 사라지기 때문에 변수를 만들면 다 사라져버림

java의 자료형은 기본형과 레퍼런스 (참조) 존재한다. 기본형은 8개
배열은 레퍼런스 자료형이다.

내가 4칸짜리 인덱스 3짜리를 배열을 만들고 싶을때 . 레퍼런스 자료형은 무조건 대입연산자 뒤에 new가 들어감
new (생성하다!) ex ) scanner 생각해보자구조식
int[ ]number=newint[4]

대입연산자 있을시? 오른쪽부터 보면됨! 오른쪽에 있는 값을 왼쪽에 넣어주세요
new = 만들어 주세요 !
정수형타입의 길이가 4인 배열을 만들어주세요
실행시 배열이 생성됨

레퍼런스변수는 값을 직접 저장하는것이 아니고 변수를 참조하여 주소를 저장하는 것이다 ..!
값을 직접적으로 저장하는것이 아니고 주소만 저장함
지금 int [ ]의 레퍼런스 변수는 int만 담을수 있다.
String 은 담을수 없음 타입이 무조건 동일해야함 (스캐너 생각하자)

기본구조 new int [ ]의 안에는 원하는 길이를 넣으면됨
여기 배열은 지금 3의 길이를 갖고있는데 인덱스는 0,1,2 가 존재한다
이때 인덱스 0에 값을 넣고 싶으면?
array에 부탁하면 된다 .

↓ 값을 보고 싶을땐 이렇게 선언해주면 된다.
사람이쓰는 언어를 컴퓨터가 이해할수 있게하는 과정 = 컴파일



2. 배열 생성과 동시에 값을 넣는 방법

내가 넣고 싶은 만큼 쉼표로 구분해서 넣으면 된다.



밑에 경우
array2가 아닌 array1의 2 인덱스를 바꿨는데도 array2의 2인덱스의 값도 바뀌었다.
그 이유는?
레퍼런스 변수들은 복제되는 순간 값이 복제되는 것이 아니고 주소가 복제되기 때문에 똑같은 주소를 지니게 됨
일반 변수들은 값을 복제함!



똑같은 주소값을 가지고 있는 것을 볼 수 있음! 1번 을 바꿔도 2번이 바뀌는 이유가 있음

앞쪽에 [ ]는 길이를 정해 줄 수 없다!저 앞쪽은 타입과 변수명만을 알려줄뿐

배열의 크기는 변경할 수 없음!!!!!
배열 - for문은 함께 자주 사용함
배열 예제
배열 인덱스에 값을 넣고 확인해보자

System.out.print(Arrays.toString(배열이름))
//배열안의 값을 빠르게 확인하는법(보고만 싶다면)저거 적어주면 됨 배열을 문자열로 보겠다.
배열에 조건식 쓸때 1차원 배열은 향상된 for문을 사용할 수 있다.
구조


system.out.print(data[1][0])
구조를 잘 이해해야함 ! ㅠㅠ




잘 보면 위쪽은 data.length로 배열의 길이를 세준 것이다 . 길이는 배열이 총 4개 들어갔으므로 4임 => { } 갯수
밑은 data의 인덱스 0번째 배열의 길이를 물어본것이다 1,2,3,4,5 가 들어가서 길이는 5로 출력된다.
2차원 배열이란 ?
배열의 인덱스 안에 배열이 들어간 구조 그 배열 안에도 인덱스가 정해져있다.




배열 예제


비정방형 배열


'STUDY(개인 기록) > JAVA' 카테고리의 다른 글
| 프로그래밍 (0) | 2024.03.07 |
|---|---|
| Java - 반복문 (0) | 2023.03.27 |
| Java - if 문 (1) | 2023.03.21 |
| Java - 역사, 특징 (0) | 2023.03.13 |