문제는 내가 can& 마피렌트리 'a' s, t # 39 인스턴스화하지 it& 때문에 # 39, 인터페이스입니다.
Key / value 객체에는 마피렌트리 위한 새 일반 작성하는방법에 아는 사람?
정적 클래스 a ',' s # 39 점을 it& 네스트된 DON& T 압스트라치마프 ',' # 39 있다는 의미입니다 닫기 때문에 이 같은 일이 있어야 인스턴스입니다 인스턴스화합니다 컴파일 좋아요.
Map.Entry<String,Integer> entry =
new AbstractMap.SimpleEntry<String, Integer>("exmpleString", 42);
또 다른 답을 밝힌 바와 같이, 구아바 편리한 '정적' 팩토리 메서드 ['마ps.2무터블런트리'] (https://google.github.io/guava/releases/snapshot/api/docs/com/google/common/collect/Maps.html # k v 이무터블런트리) 를 사용할 수 있습니다.
횡격막탈장의:
>. 내가 사용하는 것 자체가 ',' t # 39 can& 마피렌트리 it& 때문에 제가 읽기 전용 객체에는 can& # 39, t, s # 39 인스턴스화하지 instanceof '새'
'는', '압스트라치마피심플린트리 붽뎄 기재된 대로, 며칠 후, 만일 you& # 39 @since 1.6' re it& # 39 5.0 에 사용할 수 없습니다.
다른 클래스를 찾을 수 있습니다 ',' 는 사실 진행하십시오 마피렌트리 알려져 있는 javadoc. [Java 6 버전] 에서 (http://java.sun.com/javase/6/docs/api/java/util/Map.Entry.html)
>. # 인터페이스입니다 Map.Entry<, K, V>.
>. 모든 알려진 구현 클래스를 :
>. * ['압스트라치마피심플린트리'] (http://java.sun.com/javase/6/docs/api/java/util/AbstractMap.SimpleEntry.html), ['압스트라치마피심레이무터블런트리'] (http://java.sun.com/javase/6/docs/api/java/util/AbstractMap.SimpleImmutableEntry.html)
[1.5 버전] 이 죄송합니다. (http://java.sun.com/j2se/1.5.0/docs/api/java/util/Map.Entry.html) 이 단순히 목록을 구현 클래스를 중단될 수 있는 모든 알려진 사용할 수 있는, 그래서 자신의 구현 할 수 있습니다.
이 ',' 인터페이스입니다 교도관님도요 Map.Entry<, K, V> 구현하십시오 됩니다.
import java.util.Map;
final class MyEntry<K, V> implements Map.Entry<K, V> {
private final K key;
private V value;
public MyEntry(K key, V value) {
this.key = key;
this.value = value;
}
@Override
public K getKey() {
return key;
}
@Override
public V getValue() {
return value;
}
@Override
public V setValue(V value) {
V old = this.value;
this.value = value;
return old;
}
}
그리고 사용한다.
Map.Entry<String, Object> entry = new MyEntry<String, Object>("Hello", 123);
System.out.println(entry.getKey());
System.out.println(entry.getValue());
[마ps.2무터블런트리] 시도하시겠습니까 (http://guava-libraries.googlecode.com/svn/trunk/javadoc/com/google/common/collect/Maps.html # 이무터블런트리 (20v ᄀ씨, %) 에서 [구아바] (http://code.google.com/p/guava-libraries/)
여기에는 advantage of being Java 5 호환됩니까 (압스트라치마피심플린트리 필요로 하는 것과 달리 '' jave 6.)
import java.util.Map;
import java.util.AbstractMap;
import java.util.AbstractMap.SimpleEntry;
ArrayList<Map.Entry<Integer, Integer>> arr =
new ArrayList<Map.Entry<Integer, Integer>>();
arr.add(new AbstractMap.SimpleEntry(2, 3));
arr.add(new AbstractMap.SimpleEntry(20, 30));
arr.add(new AbstractMap.SimpleEntry(2, 4));
System.out.println(arr.get(0).getKey());
System.out.println(arr.get(0).getValue());
System.out.println(arr.get(1).getKey());
System.out.println(arr.get(1).getValue());
System.out.println(arr.get(2).getKey());
System.out.println(arr.get(2).getValue());
2
3
20
30
2
4
, 만들 수 있는 새로운 방법을 jave 9 일부터 유틸리티에는 불변 초급형 원하는거요 [# 항목 (개체, 객체) '' 매핑해야] [1].
다음은 간단한 예:
Entry<String, String> entry = Map.entry("foo", "bar");
'한' 언스포르테도프라티온렉세페시옹 던질 수 있기 때문에 호출하십시오 세바루이 '은'. 그리고 다른 제한이 있다는 직렬화할 수 없습니다 'null' 등을 주요 금기한 수 없는 경우 또는 값은 당신꺼에요 사용해야 합니다 ['압스트라치마피심레이무터블런트리'], 2 또는 '압스트라치마피심플린트리' 를 사용할 수 있습니다.
[1]: https://docs.oracle.com/javase/9/docs/api/java/util/Map.html # k v 엔트리입니다. -
[4]: https://docs.oracle.com/javase/9/docs/api/java/util/Map.html # k v -
난 항상 사용하고 있는 일반 페어당 정의된 클래스. # 39 it&, 괜찮네요. 보너스로 정적 factory method) 을 정의함으로써, 자주 쓸 수 있어요. (페이리크리트) 인수만 반단면 유형.
public class Pair<A, B> {
private A component1;
private B component2;
public Pair() {
super();
}
public Pair(A component1, B component2) {
this.component1 = component1;
this.component2 = component2;
}
public A fst() {
return component1;
}
public void setComponent1(A component1) {
this.component1 = component1;
}
public B snd() {
return component2;
}
public void setComponent2(B component2) {
this.component2 = component2;
}
@Override
public String toString() {
return "<" + component1 + "," + component2 + ">";
}
@Override
public int hashCode() {
final int prime = 31;
int result = 1;
result = prime * result
+ ((component1 == null) ? 0 : component1.hashCode());
result = prime * result
+ ((component2 == null) ? 0 : component2.hashCode());
return result;
}
@Override
public boolean equals(Object obj) {
if (this == obj)
return true;
if (obj == null)
return false;
if (getClass() != obj.getClass())
return false;
final Pair<?, ?> other = (Pair<?, ?>) obj;
if (component1 == null) {
if (other.component1 != null)
return false;
} else if (!component1.equals(other.component1))
return false;
if (component2 == null) {
if (other.component2 != null)
return false;
} else if (!component2.equals(other.component2))
return false;
return true;
}
public static <A, B> Pair<A, B> create(A component1, B component2) {
return new Pair<A, B>(component1, component2);
}
}