HashMap.containsKey() 메소드에 어떤 유형의 값을 전달할 수 있는지 알 수 없습니다. 이 메서드는 인스턴스 메서드를 (내가 틀렸다면 나를 수정하십시오)HashMap Class 일반 typing에 의해 제약되어야합니다 가정합니다. JAVA 그것을 제한하지 않는 경우, 왜 HashMap.put() 방법은 내 HashMap
map
을 데 int
값 키를 넣을 수 없습니다 그것으로 ...HashMap.containsKey 메서드 제약 조건 매개 변수 유형을 사용하지 않는 이유는 무엇입니까?
HashMap<String, String> map = new HashMap<String, String>();
// invalid
// map1.put(1, "a");
매개 변수화 유형과 일치해야합니까 키 유형은 String
입니다. containsKey()과 put() 방법의 차이점은 무엇입니까?
public static void main(String[] args) {
HashMap<String, String> map1 = new HashMap<String, String>();
map1.put("1", "a");
map1.put("2", "b");
map1.put("3", "c");
if (map1.containsKey(1)) {
System.out.println("contain");
}
else {
System.out.println("not contain");
}
}
위의 코드에서 not contain
이 출력되었고 컴파일러가 반대하지 않았습니다. 그렇게했다면,이 실수는 일어나지 않을 것입니다! 내가 맞습니까? 그렇지 않다면 나를 진실로 인도하십시오.
제 질문을 읽어 주셔서 감사합니다!
이것은 사실이 아닙니다. 이것이 사실이라면 왜'map()'인터페이스에서'get (Object)'를'get (K)'로 바꾸겠습니까? – Brian
@ 브라이언 내가 원래 쓴 것을 다시 읽으십시오 : 제네릭이 옳습니다.나는 인터페이스가 아닌 클래스를 입력하는 것을 정말로 의미한다고 생각하지만 그다지 정확하지는 않습니다. 그러나 이것이 처음부터 대답의 중요한 부분이 아니기 때문에 ... 편집되었습니다. –