본문 바로가기

카테고리 없음

#2 <2주차> 컬랙션

*연산자 우선순위 : 산술>비교>논리>대입*

 

 

Stirng <-> char[]

//toCharArray() : String -> char[]  (String에서 char 배열로 변환)
char[] strCharArray=str.toCharArray();



//char[] -> String
char[] charArray={'A', 'B', 'C' 'D'};
String charArrayString = new String(charArray);
System.out.println(charArrayString);

 

 

 

2차원 배열 선언

int[] array[]  --> 이렇게도 선언 가능!!

 

 

 

 

Collection 컬랙션

종류 :  List, Set, Map, Queue. Stack

 

 

Stack

수직으로 값을 쌓아놓고 넣었다가 뺀다 FILO(First In Last Out)

push(), peek(), pop() 사용

최근 저장된 데이터를 나열하고 싶거나 데이터의 중복 처리를 막고 싶을 때 사용

 

Stack<Integer> intStack = new Stack<Integer>();

intStack.push(10);
intStack.push(15);
intStack.push(1);

//다 지워질 때 까지 출력
while(!intStack.isEmpty()){
   System.out.println(intStack.pop());
}


---결과-----
1
15
10

 

//다시 추가
intStack.push(10);
intStack.push(15);
intStack.push(1);

//peak() 조회
System.out.println(intStack.peek()); //--> 1
System.out.println(intStack.size());

 

 

 

Queue

FIFO(First In First Out)

add(), peek(), poll() 사용

생성자가 없는 인터페이스 

 

Queue<Integer> intQueue = new LinkedList<>(); //queue 선언, 생성

intQueue.add(1);
intQueue.add(5);
intQueue.add(9);

while(!intQueue.isEmpty()){
  System.out.println(intQueue.poll());
}

-----결과--------
1
5
9

-----------------
//추가
intQueue.add(1);
intQueue.add(5);
intQueue.add(9);

//peek 조회
Syste.out.println(intQueue.peek());  //-> 가장 처음 넣은 데이터가 가장 먼저 조회가 됐다 (근데 전체 조회가 아닌듯.... 게다가 인덱스 번호를 지정해 준 것도 아닌데 당연하다는 듯이 첫번째가 나옴... peek 에 대해 알아봐야 할듯)

 

 

 

Set

집합 : 순서 없고 중복 없음 (중복 안됨)

순서가 보장되지 않는 대신 중복을 허용하지 않도록 하는 프로그램에서 사용할 수 있는 구조

Set -> 그냥 쓸 수 있지만 HashSet, TreeSet 등을 응용해서 같이 사용 가능
Set은 생성자가 없는 껍데기라 바로 생성 못 함
생성자가 존재하는 HashSet을 이용해서 Set을 구현해 볼 수 있음

 

Set<Integer> intSet= new HashSet<>(); //선언 및 생성

intSet.add(1);
intSet.add(12);
intSet.add(5);
intSet.add(9);
intSet.add(1);
intSet.add(12);


for(Integer v:intSet){
System.out.println(v);
}

-----결과-------
1
5
9
12 (중복 허용 x)

----------------

//contains
System.out.println(intSet.contains(2));  //2가 포함되어 있는지 확인하는 메서드 --> false
System.out.println(intSet.contains(5));  //true

 

 

 

Map 

Map : key-value pair
key 라는 값으로 unique하게 보장이 되어야함
Map-> HashMap, TreeMap으로 응용
key 는 unique해야하기 때문에 중복되면 안 됨,, 중복 시켜도 중복된 키는 허용되지 않음(중복했을 때 마지막으로 넣은 값으로 키가 덮어 씌워진다)

 

Map<String, Integer> intMap = new HashMap<>

intMap.put("일", 11);
intMap.put("이", 12);
intMap.put("삼", 13);

//키 값 전체 출력
for(String key: intMap.keySet()){  //keySet() --> map의 key만 빼서 배열로 만드는 함수
  System.out.println(key);
}

System.out.println(intMap.get("삼")); // 키가 '삼'에 해당하는 값(value)를 출력