불량 코드 전시 - 수조 순환 판단 같은 방식으로 한 대상이 한 집합 안에 있는지 아닌지를 판단하지 마라
/**
*
* @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은 존재 여부를 판단하는 것이 순환 판단보다 빠르고 편리하다.
물론 코드가 더 잘 수정되는 것은 블랙리스트를 프로필에 넣고 시스템이 시작될 때 메모리로 가져오는 것이다.그건 더 이상 말하지 않겠습니다.
글의 가장 주요한 목적은 초보자들에게 수조 순환 판단과 같은 방식으로 한 대상이 한 집합 안에 있는지 아닌지를 판단하지 말라고 하는 것이다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
Access Request, Session and Application in Struts2If we want to use request, Session and application in JSP, what should we do? We can obtain Map type objects such as Req...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.