尝试使用java中的contains方法编译类时出现此错误。错误说它找不到符号,我觉得有点奇怪,因为我之前已经多次使用了contains方法而没有任何问题。
我得到的错误如下:
这是我的代码:
import java.util.*;
public class DVDAdministrasjon {
private Map personerOversikt;
public void nyPerson(String navn){
for(int t = 0; t < personerOversikt; t++){
if(!personerOversikt.get(t).equals(navn)){
Person newPerson = new Person(navn);
personerOversikt.put(navn, newPerson);
} else {
System.out.println("Personen er allerede registrert!");
}
}
}
public void kjop(Map kjoptDVD, Map eier){
int teller = 0;
Scanner tastatur = new Scanner(System.in);
System.out.println("Hvem har kjopt DVD-en?");
String navn = tastatur.nextLine();
System.out.println("Hva er tittelen paa DVD-en?");
String filmNavn = tastatur.nextLine();
if(personerOversikt.contains(navn)){
kjoptDVD.put(navn, filmNavn);
eier.put(navn, filmNavn);
} else {
System.out.println("Personen er ikke registrert enda!");
}
}
public void laan (Map utlaantDVD, Map eier, Map laantDVD){
Scanner tastatur = new Scanner (System.in);
System.out.println("Hvem vil laane DVD-en?");
String navn = tastatur.nextLine();
System.out.println("Hvem skal DVD-en laanes fra?");
String navn2 = tastatur.nextLine();
System.out.println("Hva er tittelen paa DVD-en?");
String filmNavn = tastatur.nextLine();
if(eier.contains(filmNavn)){
if(personerOversikt.contains(navn2)){
laantDVD.put(navn, filmNavn);
utlaantDVD.put(navn2, filmNavn);
} else{
System.out.println(navn2 + " er ikke registrert");
}
} else{
System.out.println(navn2 + " eier ikke filmen");
}
}
}
以下是引用的类:
import java.util.*;
public class Person {
private String navn;
private Map kjoptDVD;
private Map utlaantDVD;
private Map laantDVD;
private Map dvdOversikt;
public Person (String navn){
this.navn = navn;
}
}
答案 0 :(得分:0)
您正在使用地图而不是集合。如果您选中Map
javadocs,则会看到Map
界面没有contains
方法。您应该使用containsKey
代替。
答案 1 :(得分:0)
Map
没有方法contains
。试试containsKey
。
答案 2 :(得分:0)
错误的原因很简单: Map接口没有名为 contains
的方法您需要使用Map.containsKey或Map.containsValue,但包含因为它未定义且不起作用..
此外,Map是一个界面,所以你实现的类可能是 HAshMap ..所以 containsKey 和 ContainsValue 是内部使用的方法等于和 hascode ,以防你在那里有像PErson类或类似的自定义类。
并且不要将原始类型与Collection ...
一起使用 HashMap类中的片段containsValue
...
public boolean containsValue(Object value) {
Node<K,V>[] tab; V v;
if ((tab = table) != null && size > 0) {
for (int i = 0; i < tab.length; ++i) {
for (Node<K,V> e = tab[i]; e != null; e = e.next) {
if ((v = e.value) == value ||
(value != null && value.equals(v)))
return true;
}
}
}
return false;
}