我有一個函數可以爲傳入的用戶數組生成密鑰對(使用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「}; –