需要有关字符串列表的帮助

时间:2014-09-02 07:39:36

标签: java

我对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);  
}

我有点迷失在这里。任何帮助非常感谢!

3 个答案:

答案 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);
    }
}