package Demo77; import java.util.ArrayList ; import java.util.Scanner; public class WorkeTest { public static void main(String[] args) { ArrayList <Worke>list= new ArrayList(); Worke m1 = new Worke("老张",45,8000.0); Worke m2 = new Worke("老李",50,18000.0); Worke m3 = new Worke("隔壁老王",55,4000.0); Worke m4 = new Worke("老八",35,6000.0); list.add(m1); list.add(m2); list.add(m3); list.add(m4); for (int i = 0; i < list.size(); i++) { System.out.println(list.get(i)); } Double sum=0.0; for (Worke m:list) { sum+=m.getSalary(); } System.out.println("所有人的平均工资是:"+sum/ list.size()); for (int i = 0; i < list.size(); i++) { Object o =list.get(i); Worke m= (Worke)o; if (m.getName().contains("八")) System.out.println(m); } Scanner scan = new Scanner(System.in); System.out.print("请输入一个姓名:"); String s= scan.nextLine(); for (int i = 0; i < list.size(); i++) { Object o =list.get(i); Worke m= (Worke)o; m.getName().equals(list); } }
时间: 2024-03-11 07:46:54 浏览: 16
这段代码的最后一个for循环存在问题,因为在循环中,判断语句 m.getName().equals(list) 的逻辑是不正确的,因为 getName() 方法返回的是一个字符串类型,而 list 是一个 ArrayList 类型,这两者之间无法直接比较。如果想要判断输入的姓名是否在列表中,可以使用 equalsIgnoreCase() 方法进行忽略大小写的字符串比较,如下所示:
```java
Scanner scan = new Scanner(System.in);
System.out.print("请输入一个姓名:");
String s = scan.nextLine();
for (Worke m : list) {
if (m.getName().equalsIgnoreCase(s)) {
System.out.println(m);
break;
}
}
```
这样就可以从列表中找到输入的姓名对应的 Worke 对象并输出了。另外,代码中的变量命名不够规范,应该使用有意义的名称来表示变量的含义,比如可以将 m1、m2、m3、m4 改为 w1、w2、w3、w4。
相关问题
package Expert import java.util.*;和package import java.util.*;的区别
这两个语句的区别在于导入的包的范围不同。
首先,`import java.util.*;` 导入了 `java.util` 包中的所有类和接口,包括 `ArrayList`、`HashMap`、`Scanner` 等等。当您需要使用该包中的任何类或接口时,您可以直接使用类名,而无需使用完全限定的类名。
其次,`package Expert import java.util.*;` 语句是一个 Java 源文件中的 package 声明和导入声明。它指定了当前 Java 源文件的包名和要导入的包。在这种情况下,它告诉编译器当前 Java 源文件属于 `Expert` 包,并且要导入 `java.util` 包中的所有类和接口。
因此,它们的作用是不同的。`import java.util.*;` 语句只是导入了一个包,而 `package Expert import java.util.*;` 语句同时指定了当前 Java 源文件的包名和要导入的包。
package module4; import java.util.ArrayList; import java.util.Scanner; public class Test40 { public static void main(String[] args) { Scanner scanner = new Scanner(System.in); ArrayList<Shape> list = new ArrayList<>(); … }
很抱歉,我不太明白您想要问什么问题。这段代码看起来像是Java语言中创建一个Test40类的程序,其中包含一个main方法,该方法利用Scanner类和ArrayList类实现对形状类Shape的动态数组进行输入和操作。您需要补充代码以实现完整的功能。如果您有任何具体的问题或需要帮助,请告诉我,我会尽力回答。