본문 바로가기

AdvancedJava

[3일차] List Array,Collection

Array


String [] stringArray 와 같이 정의


연속한 메모리 공간.

각각 하나하나에 들어가는 동일한 연속된 공간 이런것들은 어레이라 한다. . . . .

메모리가 연속해서 존재한다. 


자바에서 array 는 변수의 array 


Person[] p  = new person[10]

person 변수 10개를 연속해서 만들겠다는 의미. 

그래서 객체가 아니라 변수다. 

변수를 만든거지 객체를 할당한것이아니다. 

array를 만드는방법은 여러가지가 있다. 

public void m(String... s){// 이 파라미터는 가변처리를 할 수 있다. 
}

hash


일단 저장공간을 크게 만들어서 hash(object)함수를 실행시켜서 만들어지는 숫자(메모리 주소)를 가지고 데이터를 넣어놓는다. 

object를 가지고 hash를 돌리면 항상 그 숫자가 나와서  갟수가 n개 여도 빨리 찾을 수 있다. 오더러블1.
빠르게 찾느게 자바의 성능의 핵심이다. 

최대한 분산되게 분포해야 제대로 퍼포먼스의 영향이 있다. 

Collection Interface


객체들ㅇ의 모임을 저장하기 위해 공통적 행위들을 선언.

개별적인 ㅇ소들을 모아 놓은 것
맵은 key value형식으로 구성되는 객체들을 모아놓은 구조.
연관 배열이라고도 함.

iterator interface 예전에는 잘 쓰였는데 지금은 잘 안씀.



List<String> items = new ArrayList<>();



한번씩 써보는 것도 좋겠다. ...


콜렉션이 가지고 있는 데이터를 array로 바꿀때는


int [] x = a.toArray(new Integer[a.size()]);


이렇게 하면 배열로 바뀐다. 


List

Collection 의 하위 인터페이스

인터페이스도 extends된다. 

데이터도 null 넣을 수 있다. 

List<String> items;
int getCount(){

return (items=null)?:items.size();
}

null 체크 안하려면 처음부터 = new ArrayList();


객체 만들어 놓고 쓴다. 낭비지만 크지않다. 


분기문이 많으면 안좋은코드 내가 안좋은 코드 분기문 개많이 나온다. 



'AdvancedJava' 카테고리의 다른 글

[3일차] IO  (0) 2016.07.07
[3일차] list 실습  (0) 2016.07.07
[3일차] 제네릭  (0) 2016.07.07
[3일차] 어노테이션 실습  (0) 2016.07.07
[3일차] 어노테이션  (0) 2016.07.07