0
class IdPwPair {

  private String pw = "";
  private String id = "";

  //Constructor

  //getter & setter

 }

那是因为我想将大量的 ID 及其密码放入一个数组中。

而且,我可能想添加一个字段 accountType,然后 Map 将不再工作。

4

4 回答 4

4

class是的,创建并稍后使用它是有意义的list<class>......更好的是char[]用于密码以获得安全,处理和操作目的的好处......

于 2013-11-06T12:45:28.807 回答
1

我对课程的建议如下:

class IdPwPair {
  final public String id, password;

  public IdPwPair(String id, String password) {
    this.id = id;
    this.password = password;
  }
}

解释

您要设计的是一个数据持有者类。这里强烈建议使用final关键字,不要加setter,因为这个类不控制数据,只是把它抱在一起。

这不仅使访问数据更容易(更快),而且还允许更简单的代码结构。您无需跟踪更改数据集内容的时间和地点,只需使用它们,如果它们不再有效,则将其丢弃。这确保了给定的一组数据在任何时候都包含确切的一组信息,或者不再存在。甚至没有机会在其他人仍在使用数据时意外更改数据而造成混乱。

注意:将密码保存在 JVM 内存中存在安全问题,因为有人可以实时破解 JVM 并提取密码。因此,如果您正在开发一个值得关注的软件(我对此表示怀疑),您应该使用char[]它并在不再使用时覆盖内容。

于 2013-11-06T12:49:38.410 回答
0

您可能希望同时使用ArrayList<String>anPwId

或者

HashMap<String,String>它将每个 id 映射到其密码。

最好使用 achar[]来存储密码,因为您可以在完成后甚至在 GC 进入之前显式擦除数据。

于 2013-11-06T12:42:42.437 回答
0

首先使用小写开头如下

  private String pw = "";
  private String id = "";

创建一个类取决于您的要求。你可以用你HashMap<String,String>的。

 Map<String,String> idOverPassword= new HashMap<String,String>();
 idOverPassword.put("id","password");
于 2013-11-06T12:43:33.297 回答