当前位置: 首页 > 知识库问答 >
问题:

使用另一个类在ArrayList中存储对象

厍胤运
2023-03-14

这是第一个代码:

public class Person {
    private int age;
    private String name;

    public Person(String name,int age){
        this.age = age;
        this.name = name;
    }

    public void setName(String name){
        this.name = name;
    }

    public void setAge(int age){
        this.age = age;
    }

    public int getAge(){
        return age;
    }

    public String getName(){
        return name;
    }

    public String toString(){
        return name+","+age;
    }

}

那么这是它将在其中显示输出的主类:

    import java.util.ArrayList;

import javax.swing.JOptionPane;

public class PersonDatabase {

    public static void main(String[] args) {

        ArrayList<Person> list= new ArrayList<>();
        Person p = new Person("",0);
        int choice =0;
        String listing ="";

        do{
            choice=Integer.parseInt(JOptionPane.showInputDialog(null,"\nChoices:"+"\n[1]Add"+"\n[2]Edit"+"\n[3]Delete"+"\n[4]Search"+"\n[5]View"+"\n[6]Sort"+"\n[7]Exit"+"\nEnter Choice:"));


            switch(choice){
            case 1:
                String name = JOptionPane.showInputDialog(null,"Enter Name:");
                int age = Integer.parseInt(JOptionPane.showInputDialog(null,"Enter Age:"));
                list.add(new Person(name,age)); 
                break;

            case 2:
                break;

            case 3:
                break;

            case 4:

                break;
            case 5:
                if(!list.isEmpty()){
                    for(int i=0;i<list.size();i++){
                        listing+=list.toString();
                        JOptionPane.showMessageDialog(null,listing);
                    }
                }else{
                    JOptionPane.showMessageDialog(null,"ERROR","", JOptionPane.WARNING_MESSAGE);
                }
                break;
            case 6:
                break;

            case 7:
                break;


            }

        }while(choice!=7);
    }

}

很抱歉,如果我不清楚我的问题,但我想使用ArrayList,其中我将ArrayList存储在Person类中,我想使用公共字符串toString查看它,这样它将显示名称和年龄

共有2个答案

暨成双
2023-03-14

看来问题出在你的案例5:代码上。

试试看

case 5:
   if(!list.isEmpty()){
      for(int i=0;i<list.size();i++){
        listing+=list.get(i).toString();
        JOptionPane.showMessageDialog(null,listing);
     }
  }else{
     JOptionPane.showMessageDialog(null,"ERROR","",
       JOptionPane.WARNING_MESSAGE);
  }
break;

注意List.Get(i).ToString()而不是List.ToString()

裴俊智
2023-03-14

使用list.Get(index)方法从列表中提取Person对象,然后进行级联。

我猜,一旦你得到了所有的人物信息,然后你想要展示。因此,从for循环中取出joptionpane.showMessageDialog(null,listing);。否则,将其保留在循环中,就像您当前所做的那样。

for(int i=0;i<list.size();i++){
     listing += list.get(i).toString() + "\n";  // get the i Person instance from list and call toString()     
}
JOptionPane.showMessageDialog(null,listing);

您正在使用+运算符执行string级联。还可以使用StringBuilder类从列表中追加所有人员信息。

 类似资料:
  • 好的,在做任何事情之前,我想提一下,这是为学校准备的,所以请不要编写任何代码来修复我的代码,因为这不会教我任何东西。相反,如果我使用了不正确的术语,我需要的是参考、解释和适当的术语。 所以我这里有一些问题。这是我需要做的, *在学生类中包括以下方法:a.第B1部分中每个实例变量的访问器(即getter)b.第B1部分中每个实例变量的mutator(即setter) 注意:对Student类的实例变

  • 我是java新手,我正试图编写我的第一个“更大”的程序,包含几个类。我在类“CompetitionProgram”中创建了一个ArrayList并将其声明为private。 我的程序中需要这两个类(Event&ListOfEvents),这是需求之一。事件--它只是表示事件本身,比如事件名称和尝试次数(它是一个体育事件)。和ListOfEvents--它表示列表本身,并包含用于添加事件、删除事件和

  • 问题内容: 我想将数据存储在ArrayList中并在另一个类中访问它,但是当我访问时,它是0。意味着我没有访问相同的arraylist。有人告诉我我做错了。 这是我的POJO课 这是我将数据存储在 A类中的方法 , 该类 已经过检查,已成功将其插入到arraylist中。 A级 问题出在 B类中, 当我访问它的返回值0时,意味着我没有访问相同的arraylist。 这是我在 B类中* 所做的 *

  • 我需要检查一个arraylist中的任何值是否存在于另一个arraylist中: 它打印“它不包含”。我需要知道是否有方法比较这两个arraylist,如果其他arraylist中存在任何值,它应该返回。我知道迭代可以有所帮助。有什么简单的方法可以做到这一点吗?

  • 我已经阅读了很多stackoverflow的页面,但是我无法将我的ArrayList复制到另一个类中。下面是一个场景,我正在构建一个快速的图书储蓄应用程序,类似于图书馆中的应用程序,但更简单(用于学校)。 我有我的主库类(带有main),它为主菜单/选项设置了swing。 我有一个带有新书构造函数的book类,如下所示: 在这个类中,我在确认按钮上添加了一个,以确认上要作为对象添加的输入,如下所示