java - 如何通过数组列表中的元素之一查找对象并打印它?

标签 java

我正在开发一个控制台应用程序,我可以在其中注册项目。每个项目都有 3 个属性:序列号、型号、年份。 我有 3 个类 Laptop、Laptops(arraylist) 和 Office 来运行该应用程序。 到目前为止,我已经设法通过索引号找到对象本身,但我需要列出具有键入属性的所有对象。

这就是我要求用户选择选项的方式

Laptops inHouse = new Laptops();
model = Console.askModel("Enter Model : ");
inHouse.findModel(model);
break;

这是 Laptops 类中的 find 方法

public void findModel(String aModel)
{
    int arraySize = laptops.size();
    for(int i=0; i<arraySize; i++) {
        if (laptops.get(i).getModel() == aModel) {
            System.out.println(laptops.get(i));
        }
    }       
}

这是Console类中的askModel方法。

public static String askModel(String aModel)
{
    System.out.println(aModel);
    String model = askString("Enter the model: ");
    return model;
}

此外,我对java很陌生,我理解这个概念,但仍然在很多事情上挣扎,所以如果我忘记发布解决问题所需的代码,我很抱歉。

最佳答案

findModel 很好,除了您的 String 比较检查对象相等性而不是 String 相等性,将比较更改为:

if (laptops.get(i).getModel().equals(aModel))

对于非基元,使用 == 进行相等测试检查对象是否完全相同(它是相同的实例),而 String.equals将比较实际的字符串值。

关于java - 如何通过数组列表中的元素之一查找对象并打印它?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16680811/

相关文章:

java - 来自数据库的 Spring 配置

java.lang.ClassNotFoundException : org. springframework.jdbc.datasource.DriverManagerDataSource 错误

java - 装饰设计和工厂设计模式

Java:实现 MutableTreeNode,删除类似的旧方法?

java - &nbsp 字符在 Java 中无法正确显示

java - 如何在关闭阶段后清除 Javafx Webview 内存使用情况

java - 通过继承改变方法参数

java - 在另一个字符串中的某些字符之间插入一个字符串

java - 在java web应用程序中哪里将arrayList类型变量定义为静态?

java - NullPointerException没有被捕获在try block 中