[Java] java 입문 11 - UtilClass(ArrayList/HashMap/Random/HashSet)
- ArrayList
- 특징
* ArrayList 는 List 인터페이스를 구현하였기 때문에 List type으로 받을 수 있다.
- 주로 사용하는 메소드
* .add()
* .get()
* .remove()
* .size()
* .clear()
등의 메소드는 모두 List 인터페이스에 명시된 메소드 이다.
- List<Car> car = new ArrayList<>(); // 가변 배열 선언
*예제
*이용할 수 있는 method
- 메서드명, 리턴 타입을 보고 예측하는 연습이 필요하다!
- HashMap
- key값을 이용해 데이터를 관리하는 util클래스
- HashMap<key, dataType>
: key - 데이터를 구분할 key값을 저장한다. 보통 string을 많이 이용한다.
: dataType - 저장할 데이터 타입
* HashMap 클래스는 Map 인터페이스를 구현해서 만들었기 때문에
* HashMap 객체는 Map type으로 받을 수 있다.
* 주로 사용하는 메소드
* .put()
* .get()
* .clear()
* 메소드는 모두 Map 인터페이스에 정의된 메소드이다.
* put을 이용해 값을 저장하고 get을 이용해 값을 가져온다.
* key값을 String으로 받고 객체값을 Object로 지정하여 모든 타입의 데이터를 다 받을 수 있도록 했다.
* Object가 모든 데이터타입을 받을 수 있는 이유 : 모든 데이터타입 클래스의 부모클래스이기 때문
* 값을 가져올 때(get) object타입을 가져오는 것이기 때문에 꼭 형변환(casting)을 해줘야한다.
* HashMap에 있는 객체의 메소드 호출이 가능하다.
* clear는 모든 데이터를 삭제한다.
* - key : value 형태로 데이터를 관리하고자 할 때 사용한다.
* - Generic 클래스는 2개를 지정해야한다. key Generic, value Generic
* - 데이터 저장 : .put(key, value)
* - 데이터 참조 : .get(key)
* - key 존재여부 확인 : .containerKey(key)
* - 데이터 모두 삭제 : .clear()
* - 특정 데이터 삭제 : .remove(key)
- Random 클래스
- 랜덤 객체를 생성하여 랜덤값을 생성한다.
* nextInt로 정수값을 얻는다.
* 괄호 안은 정수의 범위를 말한다.
[QUIZ] 로또 번호 추천
- Random함수를 이용하여 로또 번호 6개를 무작위로 콘솔창에 출력하는 코드를 작성해 보세요(로또 번호 : 1~45 범위의 숫자중에서 중복되지 않는 6개의 숫자)
* 이중 for문을 이용하여 중복값이 되지 않도록 한다.
- HashSet
- 키값이 없다.
- 중복을 허용하지 않는다.
* HashSet<데이터 타입> 객체명 = new HashSet<데이터 타입>();
* add를 이용하여 데이터를 추가할 수 있다.
* Iterator 메소드를 이용해 반복자 객체를 얻어온다.
* iterator의 hasNext(), next()메소드를 이용해 커서가 위치한 곳의 data를 얻어온다.
- HashSet 이용해 로또 번호 얻어내기
* size 메소드를 이용해 반복문을 수행한다.
* 랜덤 수 중 같은 값이 있으면 size가 증가하지 않는다.
[QUIZ 2] 문자열을 입력받아 ArrayList와 HashSet에 저장해보세요
* scanner클래스를 이용해서 문자를 입력받는다.
* ArrayList와 HashSet의 객체를 각각 생성하고출력한다.
* HashSet의 출력은 반복자 객체를 이용하여 hasNext() 메소드와 next()메소드를 이용해 순서에 관계없이 출력되도록 한다.
'Language > Java' 카테고리의 다른 글
[Java] java 입문 13 - I/O (2) | 2017.05.24 |
---|---|
[Java] java 입문 12 - Stack/String/Exception (0) | 2017.05.23 |
[Java] java 입문 10 - GUI/GenericClass/UtilClass (0) | 2017.05.19 |
[Java] java 입문 09 - innerClass / 추상클래스 / 인터페이스 (0) | 2017.05.18 |
[Java] java 입문 08 - 다형성 (0) | 2017.05.17 |
댓글