본문 바로가기

KOSTA

KOSTA 교육 (정규표현식, 자료구조, ArrayList, Stack, Hashmap, Queue)

배운 내용

 

  1. 정규표현식
  2. ArrayList, LinkedList
  3. Stack
  4. Queue
  5. 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, 두산만 제외하고 출력이 될 것이다.