1 개의 키에 3 개의 값을 저장하고 싶습니다. 해시 맵은 키 1 개, 값 1 개만 보유 할 수 있으므로 사용할 수 없습니다. 그래서 다른 어떤 방법으로 Value A/B/C의 한 키를 가져야합니다.하나의 키로 많은 값을 저장하는 방법
키 : 문자열
값 : 문자열/문자열/사용 중 ArrayList를이/키의 값으로 설정 될 수있는 방법의
1 개의 키에 3 개의 값을 저장하고 싶습니다. 해시 맵은 키 1 개, 값 1 개만 보유 할 수 있으므로 사용할 수 없습니다. 그래서 다른 어떤 방법으로 Value A/B/C의 한 키를 가져야합니다.하나의 키로 많은 값을 저장하는 방법
키 : 문자열
값 : 문자열/문자열/사용 중 ArrayList를이/키의 값으로 설정 될 수있는 방법의
3 개의 값을 보유 할 객체를 만들고 새로운 객체는 키 - 값 쌍의 값입니다.
class TripleValue {
String A;
String B;
int C;
public TripleValue(String a, String b, int c) {
A = a;
B = b;
C = c;
}
}
public static void main() {
Map<String, TripleValue> myMap = new HashMap<String, TripleValue>();
myMap.put("SomeKey", new TripleValue("String1", "String2", 10));
}
하나의 지능.
예 :
각 키에 대한 값의 수를 알고있는 경우 또 다른 방법은 항상 동일하려고한다List myTempList = new ArrayList();
myTempList.add("Hi");
myTempList.add("Hello");
myTempList.add("How are you");
myMap.key("key", myTempList);
, 당신은 그 객체에 홀더 객체와 설정 값을 생성하고 그것을 넣을 수 있습니다 지도에서.
가 다음 목록은 키의 존재 여부를 확인해야합니다
Map<Integer, List<yourObject>> m = new HashMap<>();
을 시도해보십시오 여기
은 샘플 구현입니다. 그렇다면 목록에 추가하십시오. 다른 ArrayList에를 만들고 예를 들어 그것을
을 추가
public add(String key, MyObj myobj){
if (this.contains(key)) {
this.get(key).add(myObj);
}else {
List<MyObject> list = new ArrayList<MyObject>();
list.add(myObj);
m.put(key, list);
}
}
자바 프레임 워크는 Multimap를 지원하지 않습니다, 주위에 방법이, 아래를 참조하십시오.
Map<Object,ArrayList<Object>> multiMap = new HashMap<Object,ArrayList<Object>>();
또한이 도서관에서 살펴 Guava-libraries
을 유지하기 (비 표준 API) Multimap과의 I 인해 기록을 통해 입력 잃고 여기 추천하지 않는 것이 구현 ... (하지만 뭔가가있다 마음) –
정말 HashMaps/Maps/List에 새로운 기능입니다. 그래서 솔루션을 이해하는 것은 꽤 어렵습니다. 나는 그 모범을 이해하고 시험하려고 노력한다. 하지만 나는 해결책을 얻지 못한다. 그래서 전체 작동 예제가 있다면. 나는 거기에서 배울 수 있고 거기에서 일할 수 있습니다. – user1621988