본문 바로가기

Study/Java

[java] 클래스와 자료구조

Math 클래스

- 수학에서 많이 사용되는 함수를 제공하는 클래스

 

int num = (int) Math.Random() * 10;

-> 0부터 1까지의 소수 난수를 0부터 9까지의 정수 난수로 만드는 식

 

Random 클래스

- 난수를 발생시키는 데 사용되는 클래스

Random random = new Random();

=> 파라미터를 받지 않는 생성자

System.out.println(random.newInt(100));

=>0부터 99까지의 정수 출력

 

Arrays 클래스

- 배열을 조작하기 위한 클래스

 

compareTo 인터페이스

- 어떤 기준으로 정렬할 지 정의해 주기 위해 사용하는 인터페이스

 

Wapper 클래스

- 기본형 데이터를 오브젝트형 데이터로 넣어 주기 위한 클래스

(1.4버전까진 wapper클래스를 사용해 줘야하지만, 1.5버전에서부턴 박싱&언박싱으로 그냥 넣어줘도 된다.)

ex> // 기본형 데이터 -> wapper클래스 

Integer ir = new Integer(10);

//wapper클래스 -> 기본형 데이터 

int num = ir.intValue();

 

자동 Boxing & UnBoxing

- 기본형 객체가 자동 Boxing이 일어나면서 오브젝트형으로 바로 만들어진다.

- 오브젝트형 데이터타입이 자동 Unboxing이 일어나면서 기본형 객체로 바로 만들어진다.

 

Integer.parseInt();

 

자료구조

변수 -> 배열 -> 객체 -> 자료구조(ArrayList)

1 student (이름, 점수, 학년) -> 하나의 스튜던트 객체

이 하나의 스튜던트 객체를 반 기준의 자료구조를 만들어 주기 위해서.. 엄청난 데이터들을 보유하고 있다.

 

DB에서 하나의 자료를 가져와서 Bean(비지니스 로직)에서 ArrayList를 만들어줘서 데이터를 담고 View에서 그 데이터를 보여준다.

 

1. 생성 -> API

2. 데이터 삽입 -> 메소드 이용, 호출

3. 출력 -> 출력메소드

 

- 데이터를 효율적으로 사용할 수 있도록 구조를 만들어서 저장해둔 것

종류

리스트, 스택, 큐, 해쉬테이블, 집합(자료구조는아님)

Collection - 자료구조에 있어서 거의 써줘야하는 인터페이스

 

ArrayList<String> list = new ArrayList<String>();

< > 안에 쓰여진 타입을 타입 파라미터

위의 식에선 String타입의 객체만 저장할 수 있다.

int형 타입을 저장시키려면

list.add(new Integer(10));

이런 식으로 형변환한 다음 삽입.

 

ArrayList는 자동으로 배열 생성되고 배열이 늘어난다.

기본적으로 배열10개가 생성된다.

list.get(2); -> list에 있는 2번째 데이터를 출력

list.size(); -> list에 있는 데이터의 수를 출력

 

LinkedList 클래스, Vector 클래스

- ArrayList와 동일하다.

 

Iterator 인터페이스

Enumeration 인터페이스

-> 순차접근 -> list

- list를 iterator라는 객체를 통해 list 안에 있는 값들을 전체 출력을 한다.

- 객체 리턴, 전체 검색이나 비교하려고 할 때 쓴다.

while(en.hasMoreElements) {}

-> 객체에 담은 게 뭔가 있는 지 확인, 있으면 true 없으면 false

 

stack

 

해쉬 테이블

- 한번에 두 개의 값이 들어감. 키 값을 통해서 값의 값을 구하는 공식

 

키를 통해서  value값을 가져온다.

 

HashMap 클래스를 이용해서 해쉬테이블 만들 땐 두가지 데이터 타입을 정해야한다. 하나는 데이터 타입, 다른 하나는 키 타입

HashMap<String,Integer> ht = new HashMap<String,Integer>();

'Study > Java' 카테고리의 다른 글

[java] Input, Output  (0) 2019.05.15
[java] 클래스와 자료구조 실습  (0) 2019.05.15
[java] String, StringBuffer 실습  (0) 2019.05.15
[java] 참조값, instead of, 클래스  (0) 2019.05.15
[java] 예외처리, 정적필드  (0) 2019.05.15