Java 如何检查数组是否包含元素?
我是Java新手 我有一个像这样的数组。(我已经使用Array.toString打印了这个)。以下是数组的生成方式:。 这是从以下格式的文件中读取和制作的:Java 如何检查数组是否包含元素?,java,arrays,object,methods,element,Java,Arrays,Object,Methods,Element,我是Java新手 我有一个像这样的数组。(我已经使用Array.toString打印了这个)。以下是数组的生成方式:。 这是从以下格式的文件中读取和制作的: Nilsson;Lars;u;g;vg;vg Svensson;Lena;vg;g;g;vg Jonsson;Jonas;g;g;vg;g 我试图创建一个根据对象数组包含的内容返回“u”、“vg”或“g”的方法 @Override public String getKursbetyg() { if (Arrays.asLis
Nilsson;Lars;u;g;vg;vg
Svensson;Lena;vg;g;g;vg
Jonsson;Jonas;g;g;vg;g
我试图创建一个根据对象数组包含的内容返回“u”、“vg”或“g”的方法
@Override
public String getKursbetyg() {
if (Arrays.asList(uppgiftsbetyg).contains("u")) {
kursbetyg = "u";
return kursbetyg;
} else if (Arrays.asList(uppgiftsbetyg).contains("if the array contains 2 vg strings")) {
kursbetyg = "vg";
return kursbetyg;
} else {
kursbetyg = "g";
return kursbetyg;
}
}
这是我现在的代码,但它似乎不起作用,因为它只返回“g”,即使数组包含“u”
正如您所看到的,我希望该方法仅在找到2个vg:s时返回vg,因为您需要2个vg:s才能获得等级vg。那么如何在这里检查双元素呢?首先,您应该重新考虑您的需求。一个字符串(如
u
)的存在并不排除其他字符串(如两个vg
s或一个g
)的存在,也不排除u
和两个vg
的存在。你贴的例子在这方面已经不一致了
除此之外,您的方法缺少变量kursbetyg
的声明,我真的希望您不要修改字段,因为这是“get…”方法的副作用
通过搜索不包括第一个引用的子列表,可以直接搜索两个引用:
public String getKursbetyg() {
List<String> list = Arrays.asList(uppgiftsbetyg);
if(list.contains("u")) {
return "u";
}
int index=list.indexOf("vg");
if(index>=0 && list.subList(index+1, list.size()).contains("vg")) {
return "vg";
}
return "g";
}
公共字符串getkursbeteg(){
List List=Arrays.asList(uppgitsbetyg);
如果(列表包含(“u”)){
返回“u”;
}
int index=list.indexOf(“vg”);
如果(索引>=0&&list.subList(索引+1,list.size())。包含(“vg”)){
返回“vg”;
}
返回“g”;
}
更接近原始结构的解决方案(也可能被认为更简单)是
public String getKursbetyg() {
List<String> list = Arrays.asList(uppgiftsbetyg);
if(list.contains("u")) {
return "u";
} else if(Collections.frequency(list, "vg")>=2) {
return "vg";
} else {
return "g";
}
}
公共字符串getkursbeteg(){
List List=Arrays.asList(uppgitsbetyg);
如果(列表包含(“u”)){
返回“u”;
}else if(集合频率(列表,“vg”)>=2){
返回“vg”;
}否则{
返回“g”;
}
}
但是,如果不必要地计算
vg
2以外的vg
的出现次数,它可能会做更多的工作。它是一维数组还是二维数组?数组的图像显示了3种不同的数组,[u,g,vg],[vg,g,vg],您使用的是哪种数组?你能告诉我们你在哪里设置uppgiftsbetyg吗?我添加了一张阵列是如何制作的图片。