我对java比较新,我需要帮助列表。 我的要求是,我将创建一个存储用户信息的列表。我正在使用字符串列表来实现这一目标。现在我得到的输出像[a,b,c,d,e,f,g,h]。这包含来自" A到D"的2条记录。一个记录,从"到h"另一个。而不是这个,我需要输出为 [a,b,c,d] [e,f,g,h] 。此外,我需要使用突出显示的单独输出插入到User对象中,我需要遍历输出列表并将它们中的每一个添加到新的User对象中,例如:user1应该有[a,b,c,d]用户2有[e,f,g,h]等等。 任何人都可以告诉我如何实现这一目标。
我的代码段:
User testUser = null;
List<String> userList = new ArrayList<String>();
UserImpl u = new UserImpl();
String userCommonName = null, userEmail = null, userCanonicalName = ull,
userPrincipalType = null;
while (pit.hasNext()) {
testUser = (User) (pit.next());
userCommonName = testUser.getCommonName();
userEmail = testUser.getEmail();
userCanonicalName = testUser.getCanonicalName();
userPrincipalType = testUser.getPrincipalType();
userList.add(userCanonicalName);
userList.add(userCommonName);
userList.add(userPrincipalType);
userList.add(userEmail);
System.out.println(userList);// On printing this I am getting the
// above output which I need to split
// into separate records.
}
userList中的单独记录必须插回另一个User对象。
Iterator pit1 = userList.iterator();
while (pit1.hasNext()){
u.setCanonicalName(userCanonicalName);
u.setCommonName(userCommonName);
u.setEmail(userEmail);
u.setPrincipalType(userPrincipalType);
}
我有点迷失在这里。任何帮助非常感谢!
答案 0 :(得分:2)
我不知道为什么你想要这样做,但似乎你需要有一个字符串列表列表:
List<List<String>> userList = new ArrayList<List<String>>();
// ....
while (pit.hasNext()) {
// ...
List<String> innerList = new ArrayList<String>();
innerList.add(userCanonicalName);
innerList.add(userCommonName);
innerList.add(userPrincipalType);
innerList.add(userEmail);
userList.add(innerList);
这意味着您可以稍后依次遍历每个列表并重新生成User
类。
答案 1 :(得分:2)
只需
List<String> userList = new ArrayList<String>();
在第一圈内。
答案 2 :(得分:1)
考虑使用Map而不是List。 以下列表中的内容。你需要对它进行调整,并希望了解我的想法:)
public class myClass {
public final static String CANONICAL_NAME = "canonical_name";
public final static String COMMON_NAME = "common_name";
public final static String PRINCIPAL_NAME = "principal_name";
public final static String EMAIL = "email";
Map<String, String> userInfo = new HashMap<>();
...
public void myMethod() {
...
userInfo.put(CANONICAL_NAME,userCanonicalName);
userInfo.put(COMMON_NAME,userCommonName);
userInfo.put(PRINCIPAL_NAME, userPrincipalType);
userInfo.put(EMAIL, userEmail);
}
}