본문 바로가기
공부 기록

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

by 타태 2021. 11. 14.

 

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

 

[JAVA]구분자 없는 문자열을 배열로 변환

2021.10.31 - [실전 공부/SQL] - MYSQL에서의 조건문 (CASE- WHEN/ EXISTS/ IFNULL) MYSQL에서의 조건문 (CASE- WHEN/ EXISTS/ IFNULL) 2021.10.10 - [실전 공부/AWS&Docker&Linux] - [SERVER] 리눅스 + 도커 기..

ktae23.tistory.com

 

요즘 자주 사용한 메서드

 

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를 파라미터로 받아 소숫점 몇자리까지 받을건지 정할 수 있도록 구현

 

 

3. Set을 List로 변환하기

private List<String> setToList(HashSet<String> tmpSet) {
    List<String> returnList = new ArrayList<>();
    Iterator<String> iter = tmpSet.iterator();
    while (iter.hasNext()) {
        returnList.add(iter.next());
    }
    return returnList;
}
  • 이렇게 직접 구현해서 사용했더니 그냥 선언 할때 인자로 넘겨주면 된다더라
    • Set to List와 List to Set 모두 동일
HashSet<String> set = new HashSet<>() {
    {
        add("테스트");
        add("테스트2");
        add("테스트3");
        add("테스트4");
    }
};


long beforeTime = System.currentTimeMillis();
System.out.println("이전 : " + beforeTime);

//List<String> list = setToList(set);
List<String> 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<Integer> stringArrToIntegerArr(List<String> strList) {
    List<Integer> intList = new ArrayList<Integer>();
    for (int i = 0; i < strList.size(); i++) {
        intList.add(Integer.parseInt(strList.get(i)));
    }
    return intList;
}

 

 

List<String> stringList = new ArrayList<>(){{
    add("1");
    add("2");
    add("3");
    add("4");
}};
long beforeTime = System.currentTimeMillis();
System.out.println("이전 : " + beforeTime);

List<Integer> intList = stringList.stream().map(Integer::parseInt).collect(Collectors.toList());
//List<Integer> 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

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

 

 

반응형

댓글