>

BiDiMap 클래스가 있습니다. String 뿐만 아니라 그것을 받아 들여서 그것을 일반화하는 방법  뿐만 아니라 Object  모든 원래 기능을 작동 상태로 유지하면서 입력 매개 변수로 객체 유형. 예를 들어 put() 함수를 사용하고 싶습니다.   Object 와 함께 Object   String 대신 입력 매개 변수로 String . String 의 모든 입력 매개 변수 및 반환 값을 변경하고 싶습니다.   Object 에 입력  유형.

package MyBiDiMap;
import java.util.HashMap;
import java.util.Map;
public class BiDiMap {
    private Map<String, String> keyValue;
    private Map<String, String> valueKey;
    public BiDiMap() {
        this.keyValue = new HashMap<>();
        this.valueKey = new HashMap<>();
    }
    private BiDiMap(Map<String, String> keyValue,
            Map<String, String> valueKey) {
        this.keyValue = keyValue;
        this.valueKey = valueKey;
    }
    public void put(String key, String value) {
        if (this.keyValue.containsKey(key)
                || this.valueKey.containsKey(value)) {
            this.remove(key);
            this.removeInverse(value);
        }
        this.keyValue.put(key, value);
        this.valueKey.put(value, key);
    }
    public String get(String key) {
        return this.keyValue.get(key);
    }
    public String getInverse(String value) {
        return this.valueKey.get(value);
    }
    public void remove(String key) {
        String value = this.keyValue.remove(key);
        this.valueKey.remove(value);
    }
    public void removeInverse(String value) {
        String key = this.valueKey.remove(value);
        this.keyValue.remove(key);
    }
    public int size() {
        return this.keyValue.size();
    }
    public BiDiMap getInverse() {
        return new BiDiMap(this.valueKey, this.keyValue);
    }
}

  • 답변 # 1

    대답은 매우 간단합니다. 클래스에 K와 V라는 두 가지 일반 유형을 도입 한 다음 String의 모든 발생을 K (키 유형을 사용해야하는 경우)로 바꾸고 값이 필수입니다.

    다시 말해, 두 개의지도를 선언 할 때 특정 유형을 사용하지 말고 어느 곳에서나 클래스 수준에서 추가 한 새로운 일반 유형을 사용하십시오.

  • 이전 CURL이있는 파일을 웹 사이트에 업로드
  • 다음 pandas - Python Dataframe의 여러 열에서 NULL이 아닌 모든 값을 선택하는 방법