본문 바로가기

IT_Term

[IT_Term] java_collection,hasSetMap,arryList_방통대 교재 정리

728x90

#####. Collection

###. Collection

#. 컬렉션은 여러 원소를 하나의 단위로 묶는 것.

#. 자바는 다양한 컬렉션을 표현하고 관리하는 JCF(java collection framework)를 제공

#. JCF에서는 데이터 관리를 위한 자료구조와 알고리즘을 제공하는데 표준화된 인터페이스를 제공하고 각 인터페이스를 구현한 클래스를 정의하여 프로그래머가 편리하게 사용할 수 있게 하였다.

 

###. Collection?

#. 프로그램에서 다루는 데이터는 변수에 저장된다. 다루어야 할 데이터가 많아지면 여러개의 변수를 정의해서 사용하거나 배열로 정의해서 사용한다. 그러나 변수나 배열은 데이터 관리를 위한 기본적인 기능만 제공할 뿐 저장된 데이터를 효과적으로 관리하는 기능은 제공하지 않는다. 컬렉션이란 여러 원소를 하나의 그룹으로 묶어 관리하기 위한 것으로 컨테이너라고도 한다.

#. 프로그램 실행 중 배열 원소의 개수를 늘리거나 줄이는 기능, 중간에 있는 배열의 원소를 삭제하고 위치를 조정하는 기능 등을 배열에서는 제공하지 않는다.

#. 자바 언어에서는 일반적인 배열이나 변수로 다루기 힘든 많은 데이터를 다루는 것을 지원하기 위해 JCF를 제공한다. JCF에서는 컬렉션에 저장된 여러 데이터를 다양한 방식으로 저장, 검색, 수정, 관리하는 도구를 제공하는데, 표준화된 인터페이스를 정의하여 제공하고 각 인터페이스를 구현한 클래스를 정의해서 프로그래머가 사용할 수 있도록 했다.

 이 장에서는 JCF가 제공하는 인터페이스와 클래스의 기본적인 구성을 설명하고, 그중에서 활용도가 높은 클래스의 사용법에 대해 설명한다.

 

###. JCF의 기본 구조

#. JCF는 인터페이스와 인터페이스를 구현하는 글래스로 구성

#. JCF의 기본 구조

 - InterFace

 ㄴ. Collection

      ㄴ. Set - HashSet()

      ㄴ. List - ArrayList(), LinkedList()

      ㄴ. Queue - LinkedList()

 ㄴ. Map

      ㄴ. HashMap()

 - Collection Instance 생성 예

 : Set <Integer> set = new HashSet<>();

 : List <Integer> list = new ArrayList<>();

 : Map <String, Integer> map = new HashMap<>()

 

###. HashSet Class

#. HashSet클래스는 set인터페이스를 구현하는 클래스로 마치 집합처ㅓㅁ 숨서에 상관없이 중복을 허용하지 않으면서 자료를 관리한다.

#. HashSet의 메서드

 - add("aaa")

 - size()'

 - contains("찾을 단어")

 - remove("없앨 단어")

 - clear()

#. 입력된 자료 탐색

 

###. ArrayList Class

#. ArrayList 클래스는 LIst 인터페이스를 구현한 클래스로 같은 자료가 중보괴어 입력될 수도 있고 입력된 순서대로 자료가 관리되기 때문에 특정 위치에 있는 자료를 직접 참조할 수 있다.

 

###. LinkedLIst Class

#. LinkedLIst 클래스는 ArrayList클래스처럼 List 인터페이스를 구현하기 때문에 ArrayLIst 클래스와 같은 방법으로 사용될 수 있다. 그런데 LinkedList 클래스는 Queue 인터페이스도 함께 구현되고 있기 때문에 Queue 인터페이스에 정의되어 있는 메서드도 사용할 수 있다.

#. 기본 사용법은 ArrayList와 같다 

 

###. HashMap 클래스

#. HashMap 클래스는 Map 인터페이스를 구현하는 클래스로서 두 개의 값으로 구성된 자료를 관리하도록 만들어졌다. 이 때 두개의 값은 각각 키와 값을 의미하는데 키는 자료를 검색하는 용도로 사용되고 값에 실제 자료가 저장된다. 예를들어 사람의 이름을 ket, 그사람의 전화번호를 value라고 하면 이름, 전화번호의 쌍을 HashMap 컬렉션 객체로 관리하게 되면 key에 해당하는 사람이름으로 value에 해당하는 전화번호를 바로 찾을 수 있게 된다.

#. Map 클래스는 ArrayList, LinkedList 클래스와 같은 방식으로 자료를 탐색할 수 없다. 왜냐면 쌍으로 자료가 저장되고 key값으로 검색하여 value 값을 찾을 수 있기 때문이다.

 

 

728x90