모든 것의 주먹, 나는 Java에 대해 상당히 새로운 것입니다. 문제에 대한 나의 접근 방식이 최적이 아닐 수도 있습니다.람다를 사용하여 Hashtable에 값을 추가하십시오.
내가 문자열의 일부 목록이, 값 세트에서 4 항목 각을 포함 {"a", "b", "e", "g"}
및 {"no", "a", "g", "great"}
을 말한다.
나는 각 String
에 int
값을 할당 • 그래도 세트의 Hashtable
, 을 만들려고합니다.
class bla {
static Map stuff;
static {
// If I write it like this, I get the error "Cannot resolve method ContainsAll"
stuff.put("g", (aList) -> (aList.containsAll(Arrays.asList("a", "b", "e", "g")) ? 1 : 2));
}
}
나는 경우 : 특정 String
를 들어, 나는에 포함되는리스트에다른 항목, 같은 뭔가를 기반으로 그것을 에 다른 값을 할당 할 람다 식를 사용하려면 List<String>
을 (aList)
에 추가하면 (List <String> aList)
이되고 "람다 식의 대상 유형은 인터페이스 여야합니다."오류가 발생합니다. "예상 오류"
내가 람다 몸에 {}
와 ()
를 교체하는 경우
어떻게 작성하면 되나요? 아니면 더 좋은 생각이 있습니까?
사용중인 클래스의 javadoc을 읽는 대신 임의의 작업을 시도하는 것 같습니다. 첫 번째 힌트 : JDK의 메소드는 대문자로 시작하지 않습니다. –
^당신은 거의 당신이 원하는 것을하기 위해 람다가 필요하지 않습니다. – EvanM
또한 원시 형식을 사용하지 마십시오. 원하는 Map을 원한다. 지도가 아닙니다. –