배운 내용
- 정규표현식
- ArrayList, LinkedList
- Stack
- Queue
- Hash(Map)
1. 정규표현식
정규표현식은 어제에 이어 조금 더 심화된 예제를 통하여 학습 하려한다. 만약 개념이 부족하면 12일차에 개념이 있으니 참고하고 학습하면 되겠다.
- data배열 안에있는 값들을 Pattern클래스를 통하여 패턴을 생성한다. 이 때 Pattern.compile();을 통하여 패턴을 생성한다.
다음 이 배열을 출력하기 위하여 for문을 사용하는데 여기서 Matcher클래스를 사용하여 패턴을 검색하고 객체를 반환한다.
만약 맞는다면 맞는 배열값을 출력한다. - source와 pattern값을 선언하고 pattern을 컴파일하여 패턴을 생성한다. 생성한 패턴을 matcher로 이용하여 패턴을 검색하고 객체를 반환한다. find API를 통해 값을 찾고 group API를 통하여 패턴에 해당된 source를 출력해준다
- 위와 동일하게 진행하면 되겠다.
2. ArrayList
ArrayList는?
배열을 list형으로 구현하는 것이다.
- 기존 배열보다 쉽게 구현이 가능하다.
- 전체의 데이터를 읽어들여야할 때 사용한다.
- 데이터크기의 낭비로 불필요한 메모리 낭비가 있을 수 있다.
- 데이터 삽입 및 삭제가 부적합하다
- LinkedList는 인접데이터를 가르키는 식으로 구현한다. 때문에 수정이 용이하다.
예제를 보면서 학습해보자
- ArrayList<String> list = new ArrayList<String>(); 을 통하여 String 타입으로 리스트를 만들어준다
- 이 리스트에 추가하기 위해 add API를 사용하여 문자를 추가한다.
- size API는 list 내에 있는 모든 배열값의 크기를 나타낸다. 이 값을 num으로 선언한다.
- for문을 이용하여 get API로 배열값을 출력한다.
- list를 출력을 하기 위하여 show메소드를 선언하였다.
- list의 크기를 num으로 선언하고 for문을 이용하여 반복하고 크기까지 get 으로 내용을 출력한다.
- Main메소드 안에는 ArrayList를 선언하고 while switch문을 이용하여 선택간 반복이 가능하도록 선언한다.
- 추가는 키보드로 입력하면 add할 수 있도록 선언한다.
- 수정은 index 값을 이용하여 수정하려는 값을 찾는다면 출력할 수 있도록 선언하고 set을 이용하여 입력값으로 대체하게 한다.
- 삭제도 수정과 마찬가지로 수정값을 찾아내고 해당 값을 remove를 이용하여 삭제한다.
- 종료는 return값을 주어 바로 종료한다.
3. Stack
Stack은?
가장 처음에 넣은 값이 가장 나중에 출력된다.
- ‘후입선출' 방식으로 나중에 저장된 데이터가 가장 빨리 인출된다.
예제를 보면서 학습해보자
- LinkedList를 통하여 list를 선언한다.
- addLast로 Integer값 12, 59, 7 순서로 넣는다.
- while문을 사용하여 stack값이 없지 않다면, removeLast를 선언하여 출력한다.
- 결과는 7, 59, 12가 나온다.
4. Queue
Queue는?
먼저 넣은 값이 가장 먼저 나온다.
- ‘선입선출’ 방식으로 가장 먼저 삽입된 데이터가 가장 먼저 제거된다.
- LinkedList를 통하여 queue를 선언한다.
- offer로 토끼, 사슴, 호랑이 순서로 넣는다.
- while문을 사용하여 queue값이 없지 않다면, poll를 선언하여 출력한다.
- 결과는 토끼, 사슴, 호랑이가 나온다.
5. Hash(Map)
Hash(Map)는?
자료형으로서 대응관계를 쉽게 표현할 수 있도록 해준다.
- Key와 Value라는 것을 한 쌍으로 가진다.
- 순차적으로 해당 요소 값을 구하지 않고 Key를 통하여 Value를 얻는다.
예제를 보면서 자세히 학습해보자
- 먼저 Map으로 HashMap객체를 생성한다.
- put으로 key와 value값을 선언하고 확인하기 위하여 size로 크기를 출력해본다.
- 제거는 cantainsValue로 value값을 직접 색출하고 remove를 통하여 key값을 선택해 삭제한다. 다음 size를 이용하여 크기를 출력한다.
- 전체출력을 할 때 절차는 Map -> Set -> Iterator 순으로 진행한다.
- 먼저 Map이 Key와 Value를 함께 가져가고 Set를 사용하기 위하여 entrySet를 사용한다.
- Iterator를 선언하기 위해서는 set.iterator();로 선언한다.
- while문을 이용하여 iter.hasNext() 메소드를 사용하는데 Iterator가 보통 순방향으로 움직이지만 iterator가 가르킬 값이 있다면 항목이 존재하는 동안 반복하게 만드는 것이다.
- Map.Entry는 Map인터페이스의 내부 인터페이스인데 Map 내부에 있는 Key와 Value을 다루기 위하여 구현하는 것이다.
- iter.next();를 사용하여 순차적으로 하나씩 이동하여 항목을 확인한다.
- 출력을 하면 삭제된 2, 두산만 제외하고 출력이 될 것이다.
'KOSTA' 카테고리의 다른 글
KOSTA 교육 (File, Thread) (0) | 2021.03.05 |
---|---|
KOSTA 교육 (ArrayList, Sort, Comparable, Comparator, 입출력, Stream) (0) | 2021.03.03 |
KOSTA 교육 (Calendar, Random, 정규표현식) (0) | 2021.02.24 |
KOSTA 교육 (Interface, Object Class, Nested Class, String API, BoxingUnboxing) (0) | 2021.02.23 |
KOSTA 교육 (객체지향, reference 타입, instanceof 연산자, 추상메소드 , 인스턴스) (0) | 2021.02.22 |