[JAVA] 요즘 자주 사용한 메서드

[JAVA] 요즘 자주 사용한 메서드

728x90

반응형

2021.11.07 - [실전 공부/Java] - [JAVA]구분자 없는 문자열을 배열로 변환

요즘 자주 사용한 메서드

1. 증가율 구하기

private double getScoreGrowthRate(double firstScore, double secondScore, int round) { double result = 0; if (firstScore > 0) { result = (((secondScore - firstScore) / firstScore) * 100); } else { result = secondScore * 100; } if (result > 0) { result = Double.valueOf(String.format("%." + round + "f", result)); } else { result = 0; } return result; }

round를 파라미터로 받아 소숫점 몇자리까지 받을건지 정할 수 있도록 구현

2. 백분율 (퍼센트) 구하기

private double getPercentage(double score, double total, int round) { double result = 0; if (score > 0) { result = (score / total) * 100; return Double.valueOf(String.format("%." + round + "f", result)); } return result; }

round를 파라미터로 받아 소숫점 몇자리까지 받을건지 정할 수 있도록 구현

728x90

3. Set을 List로 변환하기

private List setToList(HashSet tmpSet) { List returnList = new ArrayList<>(); Iterator iter = tmpSet.iterator(); while (iter.hasNext()) { returnList.add(iter.next()); } return returnList; }

이렇게 직접 구현해서 사용했더니 그냥 선언 할때 인자로 넘겨주면 된다더라 Set to List와 List to Set 모두 동일

HashSet set = new HashSet<>() { { add("테스트"); add("테스트2"); add("테스트3"); add("테스트4"); } }; long beforeTime = System.currentTimeMillis(); System.out.println("이전 : " + beforeTime); //List list = setToList(set); List list = new ArrayList<>(set); long afterTime = System.currentTimeMillis(); System.out.println("이후 : " + afterTime); System.out.println("시간차이 : " + (afterTime - beforeTime));

직접 구현한 메서드

이전 : 1636866552359 이후 : 1636866552376 시간차이 : 17

초기화 할때 인자로 넘기는 방법

이전 : 1636866665249 이후 : 1636866665260 시간차이 : 11

이건 그냥 인자로 넘기는게 나은것 같다.

4. String List를 Integer List로 변환하기

private List stringArrToIntegerArr(List strList) { List intList = new ArrayList(); for (int i = 0; i < strList.size(); i++) { intList.add(Integer.parseInt(strList.get(i))); } return intList; }

List stringList = new ArrayList<>(){{ add("1"); add("2"); add("3"); add("4"); }}; long beforeTime = System.currentTimeMillis(); System.out.println("이전 : " + beforeTime); List intList = stringList.stream().map(Integer::parseInt).collect(Collectors.toList()); //List intList = stringArrToIntegerArr(stringList); long afterTime = System.currentTimeMillis(); System.out.println("이후 : " + afterTime); System.out.println("시간차이 : " + (afterTime - beforeTime)); for(Integer i : intList){ System.out.println(i); }

직접 구현한 메서드

이전 : 1636867122726이후 : 1636867122737시간차이 : 11

stream을 이용한 방법

이전 : 1636867182278이후 : 1636867182291시간차이 : 13

이건 직접 구현한 방식이 조금 더 나은 것 같다.

728x90

반응형

from http://ktae23.tistory.com/205 by ccl(S) rewrite - 2021-11-14 15:02:08