0
다음과 같은 시나리오가 있습니다.HashMap ContainsKey vs
나는 다음과 같은 유틸리티 클래스를 가지고있다. 방법.
public static Map<String, String> getFeeList() {
Map<String, String> map = new HashMap<String, String>();
map.put("Student Lists", "Student List");
map.put("Student grade", "Student Grade");
return map;
}
나는 JSP에서이 메소드를 호출하고 아래 같은 다른 값을 comapring하고, 아래
feeListsMap는 class.getFeeList 아무것도() 요청으로 설정하고 JSP에서 가져 오는 중 오류가 없습니다. vo.getSubClassDesc (위에서
<% if(feeListsMap.containsKey(vo.getSubClassDesc())){%>
<td align="center">0</td>
<%}else{%>
<td align="center">TEST</td>
<%}%>
)는 '지난 달 기준으로 학생 목록', '오늘 같은 학생 목록'과 같은 몇 가지 접미사를 포함 할 수 있습니다 .... 그러나 JSP에서 위 검사는 정확한 PIN이됩니다 키 값과 '오늘의 학생 목록', '지난 달의 학생 목록'에서 작동하지 않습니다. 지도에 더 많은 키 값 쌍이 포함될 수 있고 하위 문자열을 항상 사용하고 싶지 않으므로 여기에서 하위 문자열을 사용하고 싶지 않습니다. String contains()와 유사하게 작동하는 subClassDesc와 키 값을 비교할 수있는 쉬운 방법이 있습니까?
각 항목에 대해 String.contains ("student")를 사용할 수 없습니까? – nafas
HashMap은 문자열 자체가 아닌 문자열 해시를 사용합니다. 그래서 당신이 찾고있는 것을 할 수있는 방법이 없습니다. 키와 일치하도록'vo.getSubClassDesc()'를 변형하거나'keySet()'을 가져 와서 해당 키셋을 반복하고'vo.getSubClassDesc(). contains (key)'를 사용하십시오 – kingdamian42
* 쉬운 방법이 있습니까? 여기서 key 값을 String contains()와 비슷한 방식으로 작동하는 subClassDesc와 비교할 수 있습니다. * Java 내장 클래스에서 제공하는 현재 메소드는 없습니다. 맵에서 키를 순회하고 예상대로'String # contains '를 수행해야하며이 접근법의 용이성은 프로그래머 (이 경우에는 당신)에 달려있다. 아마 당신은 당신이 원하거나 필요로하는 것을 이루기 위해 다른 구조를 사용하기를 원할 것입니다. –