큰 숫자의 처리

ㄴlong형 이상의 큰 수를 처리할 때 사용하는 방법

복잡한 실수의 처리

ㄴ double 이상의 복잡한 실수를 처리할때 사용하는 방법

목차

선언

예시코드

설명

큰 숫자의 선언

BigInteger 이용하여 선언 

BigInteger bin1 = new BigInteger("10000000");

bin1에 큰 수를 투입

복잡한 실수의 선언

BigDecimal 이용하여 선언

BigDecimal bd1 = new BigDecimal("1.6");

bd1에 복잡한 실수를 투입

숫자의 더하기

bin1.add 이용하여 선언

BigInteger result = bin1.add(bin2);

result에 bin2와 bin1을 더한 값을 투입

숫자의 빼기

bin1.substract 이용하여 선언

result = bin1.subtract(bin2);

result에 bin2를 bin1으로 뺀 값을 투입

숫자의 곱하기

bin1.multiply 이용하여 선언

result = bin1.multiply(bin2);

result에 bin2를 bin1과 곱한 값을 투입 

숫자의 나누기

bin1.divide 이용하여 선언

result = bin1.divide(bin2);

result에 bin2를 bin1으로 나눈 값을 투입

숫자의 나누기/나머지값 받기

bin1.divideAndRemainder 이용하여 선언

BigInteger[] arr = bin1.divideAndRemainder(bin2);

arr에 bin2를 bin1으로 나눈 값과 나머지값을 투입

 

랜덤함수의 사용

Random rnd = new Random();

int result = rnd.nextInt(2);

0부터 2 미만(1까지)의 랜덤값을 뽑아내는 코드

 

min~max까지의 값을뽑아내고 싶을 때

rnd.nextint(max-min+1) + min

 

자바 컬렉션 프레임워크

자료구조론 : 최소한의 공간에 최대의 데이터를 저장하고, 가장 빠른 속도의 서비스를 구현할 수 있는 구조론

ㄴ 자료구조론을 클래스로 만든 것 = 자바 컬렉션 프레임워크

 인터페이스

 List

 구현체

 ArrayList

 사용

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

 ArrayList<Dog> list11 = new ArrayList<Dog>();

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

 list2.add(new String("hello"));

 list2.add("hello");

 list2.add("hello");

 list2.get(0);

 list2.indexOf(요소값);

 list2.remove(삭제할값);

 list6.remove(new Integer(2));

 list7.clear();

 설명

 어레이리스트에 String값만 넣겠음.

 어레이리스트에 Class<Dog>값만 넣겠음

 list2에 "hello"를 넣겠음.

 int = Integer

 Char =

 상기 2가지 제외, 나머지는 첫글자를 대문자로 변경해서 사용할 수 있음.

 어레이리스트의 크기는 size를 통해 잴 수 있음.

 remove에서 숫자를 넣으면 해당 인덱스의 값을 삭제.

 remove에서 특정값을 지우기 위해서는 new 자료형(삭제할값)으로 삭제가능

 clear는 배열 내부를 전부 삭제하는 기능

 

 인터페이스

 Set

 구현체

 HashSet

 사용

 HashSet<Integer> hs6 = new HashSet<Integer>();

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

 Iterator<Integer> it = hs6.iterator();

 while (it.hasNext()) {
      list.add(it.next());
 }

 설명

 중복데이터를 허용하지 않음

 순서가 존재하지 않음

 요소값을 가져올 때, iterator() 메서드를 이용하여 Iterator인터페이스를 받아옴

 add() : 값 추가

 size() : 크기

 remove() : 특정값 제거

 clear() : 전체값 제거

 iterator() : List - Set간 정보교류시 사용

 

 인터페이스

 Map

 구현체

 HashMap

 사용

 HashMap<String, String> map1 = new HashMap<String, String>();

 HashMap<키, String> 변수명 = new HashMap<키, String>();

 변수명.put(키, String);

 변수명.get(키);

 Set<Integer> 변수명 = 해시변수명.keySet();

 Set<Integer> set = hm7.keySet();
  
     Iterator<Integer> it = set.iterator();
     while(it.hasNext()) {
          Integer key = it.next();
          System.out.println(key);
     }

 설명

 index 없음

 index 대신 key가 있음.

 ksy는 개발자가 직접 만들어 줌

 HashMap 객체를 만들 때 첫번째 제네릭타입이 키의 자료형이 됨

 key는 index 역할을 함. key값은 중복되서는 안됨.

 key값은 인덱스역할이기에 HashSet을 이용하여 중복하지 않게 사용함.

 값을 입력할 때 이미 존재하는 key를 사용할 수 있음.

 ㄴ 이미 존재하는 key에 값을 입력하면 수정 처리함

 키셋(변수명.keySet();)은 해시맵타입의 키를 set에 넣어주는 변수이며,

 셋을 iterator를 사용하여 while문에 투입하여, iterator에 투입된 키셋과, 본래 해시맵의 자료를 사용한다

 

Generic(제네릭) : 자바 컬렉션 프레임워크에 이름을 붙이는 행위

컬렉션 프레임워크의 최대 단점 : 객체만 투입가능

 

대문자 A의 아스키코드는 65

소문자 a의 아스키코드는 97

32개의 차이가 남.

 

 기본자료형

 참조자료형화

 boolean

 Boolean

 char

 Character

 byte

 Byte

 short

 Short

 int

 Integer

 long

 Long

 float

 Float

 double

 Double

Character클래스를 제외하고

int i = Integer.valueOf("33")을 입력하면 33이 됨.

long l = Long.valueOf("33L")을 입력하면 33L이 됨.

boolean b = Boolean.ValueOf("true")를 입력하면 true가 됨.

다른 wrapper클래스에는 valueOf()가 있지만, character클래스에는 없음.

 

특정 내용의 변경을 이용하기 위해서는

MemberDTO m = MainEx.db.get(idx);
m.setName(name);
m.setAge(age);

의 방식을 사용함.

MemberDTO m이 MainEx.db.get(idx);값을 가리키게 만들고

m.setName(name);을 통하여 상기 힙메모리값에 저장함.

 

it.hasNext();

다음 값이 있는가

 

it.next();

다음 값을 반환하고, 지시자를 다음 값으로 옮길 것

 

 커서→

 

 

 100

 

 200

 

 300

 

 400

 

 500

 

상기 상황에서 hasNext의 경우 두번째 커서칸에 값이 있으므로 true

next의 경우 100을 반환하며, 100의 위치로 이동함.

 

 

 

 커서→

 100

 

 200

 

 300

 

 400

 

 500

 

상기 상황은 it.next까지 1회 실행된 상태이다.

상기 it는 100~500의 5개 값이 들어 있다.

 

정렬

 

Arrays.sort(소트할변수명, 컴퍼레이터_인터페이스_클래스)

컴퍼레이터 인터페이스 클래스는 implements Comparator<Integer>하여 사용 Integer는 원하는 것을 넣어 사용

public class MyComparator implements Comparator<Integer> {

     @Override
     public int compare(Integer o1, Integer o2) {

          // TODO Auto-generated method stub

          if(o1 > o2) {
          return 1;
          }else {
          return -1;
          }
     }

}

 

 

팁.

2개 이상의 데이터를 입력할 시에는 put이라는 단어를 포함한 키워드로 작동하는 경우가 많음.


어레이리스트에서 자주 사용하는 메서드

boolean add(Object o)

ArrayList의 마지막에 객체를 추가하고 성공시 true값을 반환

void add(int index, Object element)

지정된 index값에 객체를 저장

Object get(int index)

index값의 객체를 반환

int indexOf(Object o)

지정된 객체가 저장된 index값 반환

boolean isEmpty()

ArrayList가 비어있는지를 확인

Object remove(int index)

index값에 위치한 객체를 제거

boolean removeAll(Collection c)

특정 컬렉션 c를 파라미터로 받아 c에 저장된것과 동일한 객체를 ArrayList에서 삭제

int size()

ArrayList에 저장된 갯수를 반환

 

를 자주 사용함.


 

해시맵에서 자주 사용하는 메서드

void clear()

HashMap에 저장된 모든 객체를 제거

boolean containsKey(Object key)

HashMap에 지정된 가 포함되어있는지 확인하여 있을때 true값 반환

boolean containsValue(Object value)

HashMap에 지정된 이 포함되어있는지 확인하여 있을때 true값 반환

Object get(Object key)

지정된 키의 값을 반환. 찾지 못하면 null값 반환

boolean isEmpty()

HashMap이 비어있는지 확인

Object put(Object key, Object value)

지정된 키와 값을 HashMap에 저장

Object remove(Object key)

HashMap에서 지정된 키로 저장된 값을 제거

int size()

HashMap에 저장된 요소의 개수를 반환


'JAVA > JAVA 기본' 카테고리의 다른 글

JAVA File클래스  (0) 2017.10.11
JAVA Thread  (0) 2017.10.11
JAVA 에러와 예외, try~catch, throw  (0) 2017.10.11
JAVA 스캐너클래스, DTO클래스, 내/외부클래스  (0) 2017.10.11
JAVA 인터페이스  (0) 2017.10.11

+ Recent posts