-자료구조
큐 : 들어온 순서대로 나감
스택 : 먼저들어온게 가장 마지막에 나감.
-배열
: 연속된 숫자들을 나열한것 int [] arr = new int[i]; 로 사용.
- > 메모리 한칸에 4bate ( x | | x | | x | | | ) =>x가 사용중 공간 일때 배열 저장 못함.
연속적인 공간에 데이터 저장가능하기 때문
( x | 1 | 2 | 3 | | x | | ) 은 가능
[0] [1] [2]
int [] arr = new int[3]; => 처럼 크기를 지정해줘야함 ( 3칸으로 배열하겠다 처럼 )
공간을 지정하지 않으면 에러남 ( 위의 x 처럼 배열할 크기보다 작은 공간같은거 때문에 미리 잡아둘 수 없음 )
즉, 배열은 크기를 알수 있는 자료라고 할 수 있다.
장점 : 리딩속도가 매우 빠름 ( 연속적인 공간에 데이터가 저장되어 있어서 0부터 쭉 읽으면 되기 때문 )
단점 : 추가를 못함.
( x | 1 | 2 | 3 | | x | | ) 처럼 배열시 될 수도 있지만 ( x | 1 | 2 | 3 | x | | | ) 이렇게 되어있을 수 있어서 막아버림.
배열을 통신으로 받을때 사이즈 확보하기 어려움 ( 얼마나 올지 모르기 때문 )
=> 수신 데이터가 작으면 공간 낭비 매우 심함.
ex) int [] arr = new int[100]; 으로 잡았는데 1이 수신되는 경우 99칸 낭비.
배열을 쓰는 경우 = 고정길이의 데이터를 주고받는 경우 사용 ( 주민등록 번호, 휴대폰 번호 같이 고정적인 데이터 )
-링크드 리스트
: int [] arr = new int[3]; ( x | | x | | | x | | ) => x가 사용중인 공간일때 ( x | 1 | x | 2 | 3 | x | | ) 같이 잡아줌.
0 1 2 3 4 5 6
1번 = *3 2번 = *4 3번 =*x << 자기꺼 말고 다음 읽을거 가르킴.
한개 추가시 ( x | 1 | x | 2 | 3 | x | 4 | ) 같이 잡아줌.
0 1 2 3 4 5 6
1번 = *3 2번 = *4 3번 =*6 4번=*x
장점 : 데이터 추가 가능 ( 빈공간에 집어넣으면 되서 )
단점 : 리딩이 느림
통신은 링크드 리스트로 받고 배열로 변환해서 읽으면 좋음
-어레이 리스트
이걸 합친게 어레이리스트임 ( 연속적 배열저장 가능하고 추가도 가능 )
ㄴ> 받을때 공간을 크게 잡은후, 다받았을때 데이터의 크기 만큼 공간이 줄어듦.
스피드는 배열이 제일 빠름.
어레이 리스트, 링크드 리스트 == 컬렉션이라 함 ( 배열이 없음 )
웹코딩 할때는 어레이리스트만 써도 됨. ( 제네릭을 알아야 함 )
아무런 타입이나 받아들이겠다 ( Object ) 사용하면 됨.
object가 모든 타입의 부모임

어레이 리스트를 만들었다.

1 2 3 이 순서대로 들어갔다.

출력시 arr1.get(0) 이런식으로

for문을 응용해서 출력 가능.
문자열로 받겠다는 선언을 하니 문자열로 잘받아짐.
'캠퍼스 > Java' 카테고리의 다른 글
| 51.for문으로 그림 (0) | 2022.08.14 |
|---|---|
| 50. 자바와 DB 연동하기 (0) | 2022.08.12 |
| 48. 제네릭 (0) | 2022.08.08 |
| 47. 인터페이스 (0) | 2022.08.07 |
| 46. 추상 클래스 (0) | 2022.08.07 |