class IdPwPair {
private String pw = "";
private String id = "";
//Constructor
//getter & setter
}
那是因为我想将大量的ID及其密码放入数组中。
而且,我可能想要添加一个字段accountType,然后Map就不再工作了。
答案 0 :(得分:4)
是的,创建class
并稍后将其用作list<class>
是有意义的...更好的方法是使用char[]
密码来获取安全性,处理和操作目的的好处。
答案 1 :(得分: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[]
代替,并在内容不再使用后覆盖内容。
答案 2 :(得分:0)
您可能希望对ArrayList<String>
和Pw
使用Id
或
HashMap<String,String>
会将每个ID映射到其密码。
首选使用char[]
来存储密码,因为即使在GC进入之前,您也可以在完成后明确擦除数据。
答案 3 :(得分:0)
首先使用小写开头如下
private String pw = "";
private String id = "";
创建课程取决于您的要求。您可以使用HashMap<String,String>
进行此操作。
Map<String,String> idOverPassword= new HashMap<String,String>();
idOverPassword.put("id","password");