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

在arrayList中多次迭代存储用户创建的对象

盛嘉
2023-03-14

我已经在互联网上搜索了问题的答案,但似乎无法得到我正在寻找的答案,我有两个类,application类和users类,我提示用户输入一个新用户或返回数组列表中已经设置为保存users对象的用户的结果。在应用程序结束后,我希望数组列表继续容纳对象,以便在应用程序类中每次连续运行main方法时,我都可以引用arrayList进行交叉检查。

下面是我正在学习的两门课。首先是应用程序类,其次是用户。

import java.util.ArrayList;
import java.util.Scanner;

public class Application{
    static Scanner in = new Scanner(System.in);


    public static void main(String[] args) {


    //Creating admin user object that will be able to access everything
        Users admin = new Users();
        Users result = null;


    //creating a new user that is not an admin
        System.out.println("Are you a new user?");
        String answer = null;
        answer = in.nextLine();

        if(answer.equalsIgnoreCase("YES") || answer.equalsIgnoreCase("Y")) {
            result = admin.addNewUser();
            result.addUsertoArrayList(result);
        }else {
            result.displayUsers(result.users);
        }
    }//End of Main Method.
}//End of Application Class

import java.util.ArrayList;

public class Users extends Application {

    private String username;
    private double biWeeklyIncome = 0;
    private String password;
    private String email;

// ArrayList to store all the objects of Type Users.
    ArrayList<Users> users = new ArrayList<Users>();



// Default Constructor.
    Users() {
    }

// Constructor that takes a string as a name parameter.
    public String name;

    Users(String name) {
        this.name = name;
    }

// Setter Methods.

// User name
    public void setUsername() {
        System.out.println("Enter the username that you wish to go by:\n Ex.      bigBoss45");
       username = in.nextLine();
    }

// Income
    public void setBiWeeklyIncome() {
        System.out.println("Enter your current bi-weekly income: \n Ex.   4500.00");

        try {
            biWeeklyIncome = Double.parseDouble(in.nextLine());
        } catch (NumberFormatException e) {
        // TODO Auto-generated catch block
            e.printStackTrace();
        }
    }

// Password
    public void setPassword() {
        System.out.println("Enter the password that you wish to access your account with:\n Ex. bigBoss45");


        password = in.nextLine();
    }

// Email
    public void setEmail() {
        System.out.println("Enter a valid email address: \n Ex. bigBoss45@gmail.com");

        email = in.nextLine();
    }

// Getter Methods

// User name
    public String getUsername() {
        return username;
    }

// Income
    public double getBiWeeklyIncome() {
        return biWeeklyIncome;
    }

// Password
    public String getPassword() {
        return password;
    }

// Email
    public String getEmail() {
        return email;
    }

// Method to create a new user
    public Users addNewUser() {
        String name = null;

        System.out.println("Enter the name of the new user\n Ex.John Smith");
        name = in.nextLine();
    // Creating the new
        Users newUser = new Users(name);

    // Setting the new users information
        newUser.setUsername();
        newUser.setPassword();
        newUser.setBiWeeklyIncome();
        newUser.setEmail();

    //adding the new user to the users arrayList

        displayUsers(users);

        return newUser;
}// end of addNewUser method.

//Method that is going to add a new user to the array List.
    public void addUsertoArrayList(Users nUser) {
        users.add(nUser);
    }

    public void displayUsers(ArrayList<Users> users) {
    // Printing out the user added to the array list for testing purposes.
        for (Users user : users) {
            System.out.println(user.getUsername());
        }
    }//End of displayUser method.


}

我对Java和所有面向对象的东西都是新手,所以非常感谢您的帮助,我感谢您花时间看我的代码!

共有1个答案

澹台俊晖
2023-03-14

每次运行类似java application这样的命令来运行程序时,都将启动一个新的java进程。内存中的任何数据都不会从以前的java程序执行中转移过来。

如果要存储数据,以便在进程的多次执行中保持不变,则应考虑将其外部化到文件或数据库中,等等。

 类似资料:
  • 有点初学者的问题但是... 我有一个从数据库返回的ResultSet对象-3列30行。 我检索以下数据集: null 我知道这应该不难,我只是在努力寻找迭代HashMaps的ArrayList的最佳方法

  • 问题内容: 我是一个自学者。当前,我正在制作一个需要矩阵型数据库的GUI项目。 我想学习如何创建一个可以在arraylist中存储多个对象的类。 这是我的示例代码。请注意,这只是我的尝试。该代码尚未完成,因此无法正常工作。 谢谢你的热心帮助。 }} 问题答案: 我认为一种更好的方法是创建一个用户信息类来存储特定用户的信息。 然后将其放入ArrayList中。 然后,对于您当前的方法,您可以

  • 本文向大家介绍在Java中迭代ArrayList,包括了在Java中迭代ArrayList的使用技巧和注意事项,需要的朋友参考一下 Java中的Iterator用于遍历集合中的每个元素。使用它遍历,获取每个元素,或者甚至可以从ArrList中删除元素。要使用迭代器遍历集合的内容,请首先通过调用集合的iterator()方法来获得一个迭代器,使其到达集合的开头。在那之后,建立一个循环来调用hasNe

  • 在javascript函数中尝试通过传递键迭代映射时,如下所示: 我得到的是空白值。但是当我硬编码key***user1***的值时,它就起作用了。 有人能帮我一下吗?

  • 然后我再做一次,但第二次完全不迭代。我花了很多时间调试它,最后将迭代程序转换为一个列表。 你们有谁知道原因吗? 编辑:对不起,如果我不清楚, 谢谢,Harendra