我有一个函数可以为传入的用户数组生成密钥对(使用RSA算法),它似乎会为每个用户正确生成密钥并将它们添加到数组列表中。但是,当我试图打印输出时,它似乎只打印最后一个元素。似乎无法弄清楚我做错了什么。Arraylist只打印最后添加的元素
这是生成密钥并返回一个数组列表的函数: - 它将用户的字符串数组作为参数。
public static ArrayList<User> generateUserKeys(String [] users){
ArrayList <User> usrs = new ArrayList<User>();
KeyPair k;
for (int i=0;i<users.length;i++)
{
k=generateKeyPair();
usrs.add(new User(users[i],k.getPublic(),k.getPrivate()));
System.out.println("User Name is :"+ usrs.get(i).getUserName());
System.out.println("Public Key is :"+ usrs.get(i).getPublicKey());
System.out.println("Private Key is :" + usrs.get(i).getPrivateKey());
}
return usrs;
}
这里是我正在测试它: -
String [] users =
{"[email protected]","[email protected]","[email protected]","[email protected]"};
ArrayList<User> usrz= generateUserKeys(users);
Iterator<User> itr = usrz.iterator();
while(itr.hasNext())
{
System.out.println(itr.next().getUserName());
}
我收到的输出是
[email protected]
[email protected]
[email protected]
[email protected]
我们可以看到用户的阵列? –
您可以发布您的所有输出 – Natecat
以下是用户代码String [] users = {“[email protected]”,“[email protected]”,“[email protected]”,“tannerh @ tcd.ie“}; –