gpt4 book ai didi

从方法返回时java列表为空

转载 作者:行者123 更新时间:2023-12-02 00:29:09 25 4
gpt4 key购买 nike

我有一个方法,可以循环遍历排序的数组和排序的列表元素到另一个名为sortedFirstName的列表。这是该方法的代码。

 public void sortFirstName(String input){
Collections.sort(fullName, new FirstNameComparator(input));

for(int i = 0;i<fullName.size();i++){
System.out.println("\n" + fullName.get(i));
sortedFirstName.add(fullName.get(i)); //adds to list fine

}
System.out.println("Sorted First Name" + sortedFirstName);
//prints desired output, [Jake Paul, Billy Robinson, Charles Princeton, John Paul, Karen Jacobs]

FirstName 是一个列表,实例化如下 - List<String> fullName = new ArrayList<String>();并通过 listAllContacts 方法填充,如下所示:

public void listAllContacts(){

for (Map.Entry<String,Person> entry : contacts.entrySet()) {
fullName.add(entry.getValue().fullName());
}
for (String contents : fullName) {
System.out.println("\n" + contents);
}
}

它由字符串填充,这些字符串是 HashMap 中对象的字段

通过此方法,我打印列表sortedFirstName列表的内容并获得正确的输出,该输出在打印语句下注释。

我还有一个返回该列表的 get 方法

public List<String> getSortedFirstNames(){
return this.sortedFirstName;
}

在我的 Junit 类中,我像这样调用这些方法

@Test
public void sortFirst(){
ad1.sortFirstName("Jake");
List sorted = ad1.getSortedFirstNames();
List sortedList = new ArrayList();
sortedList.addAll(Arrays.asList("Jake Paul", "Billy Robinson", "Charles Princeton", "John Paul", "Karen Jacobs")); //expected output from boostrapped users
assertEquals(sortedList,sorted);
}

根据我的测试用例逻辑,应该是 List sorted包含元素 [Jake Paul, Billy Robinson, Charles Princeton, John Paul, Karen Jacobs]但是当我将我的硬编码列表与 sorted 进行比较时,它显示为空。我看不到 sortedFirstName 的问题显然已经添加了元素,任何帮助将不胜感激

最佳答案

我发现了我的错误。实际填充 fullName 变量需要 listAllContacts 方法。如果不调用 listAllContacts 方法,它不会填充 fullName,进而无法填充 sortedFirstName 列表。

这是我的新代码:

@Test
public void sortFirst(){
ad1.listAllContacts();
ad1.sortFirstName("Jake");
List sorted = ad1.getSortedFirstNames();
List sortedList = new ArrayList();
sortedList.addAll(Arrays.asList("Jake Paul", "Billy Robinson", "Charles Princeton", "John Paul", "Karen Jacobs")); //expected output from boostrapped users
assertEquals(sortedList,sorted);
}

注意 ad1.listAllContacts(); 它解决了我的问题。感谢所有评论并帮助我解决这个问题的人,非常感谢。

关于从方法返回时java列表为空,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58030033/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com