불량 코드 전시 - 수조 순환 판단 같은 방식으로 한 대상이 한 집합 안에 있는지 아닌지를 판단하지 마라

1312 단어 String저장 장치
잔말 말고다음 코드를 보십시오.
    /**
     *           
     * @param name        
     * @return true:    
     */
    private boolean inBlackName(String name) {
        String[] blackName = {
            "black name 1","   2","no name","kaokao",
        };

        for(int i = 0; i < blackName.length ; i++) {
            if (blackName[i].equals(name)) {
                return true;
            }
        }
        
        return false;
    }

사실 블랙리스트를 한 집합에 기록해 집합에 판단할 이름이 포함되는지 판단하면 된다.
    private static final Set blackNames = new HashSet();
    static {
        blackNames.add("black name 1");
        blackNames.add("   2");
        blackNames.add("no name");
        blackNames.add("kaokao");
    }
    
    /**
     *           
     * @param name        
     * @return true:    
     */
    private boolean inBlackName(String name) {
        return blackNames.contains(name);
    }
    

Set을 사용하는 이유는 블랙리스트에 순서대로 기록할 필요가 없기 때문에 저장 공간을 더욱 절약할 수 있기 때문이다.
Set은 존재 여부를 판단하는 것이 순환 판단보다 빠르고 편리하다.
물론 코드가 더 잘 수정되는 것은 블랙리스트를 프로필에 넣고 시스템이 시작될 때 메모리로 가져오는 것이다.그건 더 이상 말하지 않겠습니다.
글의 가장 주요한 목적은 초보자들에게 수조 순환 판단과 같은 방식으로 한 대상이 한 집합 안에 있는지 아닌지를 판단하지 말라고 하는 것이다.

좋은 웹페이지 즐겨찾기