-2

这是我的情况:我有一种方法可以根据关键字对文件进行排序并将结果保存到近 21 个List<String[]>变量中。

 List<String[]> sortKeyword(List<String[]> csvList, String[] keywords)

所以调用这个函数,我得到了 21 个List<String[]>变量,但我不知道如何返回这些列表。收到返回结果后,我还需要做for循环来更新数据库。

因此我有两个问题: 1. 如何返回列表。2. 如何对退货单进行排序。

有人可以给我一些建议。对此,我真的非常感激。

谢谢

4

5 回答 5

3

在 Java 中不能返回多个对象,但返回的对象可以是一组对象。

出于您的目的,您可以将所有这些列表添加到 newList并返回 new List

于 2013-09-20T17:30:03.320 回答
0

您可以返回列表列表。

List<List<String[]>> ll = new ArrayList<>();
ll.add(list1);
ll.add(list2);
return ll;
于 2013-09-20T17:24:54.350 回答
0

要返回这三个列表,您可以创建一个包装类以将所有三个列表添加到其中,或者只是创建一个列表列表。

您的代码中的另一个问题是:

用于equals字符串比较:

if(kWord =="kWord1")

应更换为

if(kWord.equals("kWord1"))
于 2013-09-20T17:25:06.167 回答
0

将返回类型从 更改List<String[]>Map<String, ArrayList<String[]>>。map String 键将存储关键字,ArrayList 值将存储结果行。

于 2013-09-20T17:33:14.663 回答
0

如果我理解您的问题,您是在一个函数中执行上述操作,并且希望该函数返回所有三个列表 list1、list2 和 list3。

在这种情况下,您可以返回一个由三个列表组成的数组,或者ArrayList三个列表中的一个。一般来说,如果我想要一个返回多个值的函数(可能不都是相同的类型),我通常只创建一个小类来包含它们:

private static class KeywordSearchResults {
     List<String[]> list1;
     List<String[]> list2;
     List<String[]> list3;
     KeywordResults (List<String[]> list1, List<String[]> list2,
                     List<String[]> list3) {
         this.list1 = list1; this.list2 = list2; this.list3 = list3;
     }
}

(我通常将其作为嵌套类来执行;是制作它private还是public取决于您的需要。)

通常,声明一个具有非私有字段的类是一个坏主意,但我认为如果您只是将它用作包装器,只是为了从函数返回多个值或创建一个其唯一目的是传递某些字段的对象在一起,并且类中没有任何其他方法,我认为这很好,因为该类并不真正代表一些“更高的概念”。不过,只有在真正合适的情况下,您才会采用这种解决方案;我认为最好环顾四周,看看是否有更好的设计。

于 2013-09-20T17:37:25.547 回答