【问题标题】:How to get the smallest list?如何获得最小的列表?
【发布时间】:2018-05-15 19:14:59
【问题描述】:

所以我得到了四个列表:

1, 2, 3, 4
1, 2, 3
1, 2
1, 2, 3, 4, 5

获取元素中最小尺寸的最简单方法是什么(list.size())?

【问题讨论】:

  • 这是一个数组数组吗?
  • 这4个列表你是怎么得到的?假设它是一个列表列表:listOfLists.stream().min(Comparator.comparing(List::size)).get().

标签: java arraylist


【解决方案1】:

我认为最佳解决方案如下

 public static ArrayList<Integer> getSmallestList(ArrayList<Integer>... input) {
            ArrayList<Integer> returnValue = null;
            if (input.length > 0) {
                returnValue = input[0];

                for (ArrayList<Integer> inputIterator : input) {
                    if (inputIterator.size() < returnValue.size()) {
                        returnValue = inputIterator;
                    }
                }
            }
            else
            {
                System.out.println("No input provided");
            }
            return returnValue;
        }

... 参数允许使用您喜欢的任意数量的变量调用该方法。

【讨论】:

    【解决方案2】:

    我不知道你如何命名你的列表,所以我只是将它们命名为列表 a、b、c 和 d。

    public List<?> getLongestList(List<?> a, List<?> b, List<?> c, List<?> d) {
      if (a.size() >= b.size() && a.size() >= c.size() && a.size() >= d.size()) return a;
      if (b.size() >= a.size() && b.size() >= c.size() && b.size() >= d.size()) return b;
      if (c.size() >= a.size() && c.size() >= b.size() && c.size() >= d.size()) return c;
      if (d.size() >= a.size() && d.size() >= b.size() && d.size() >= c.size()) return d;
      return null; //impossible to reach
    }
    

    我知道这是一个非常丑陋的解决方案,但是对于 java 初学者来说很容易理解,我假设你是。如果两个或多个 List 的大小相同且最长,则返回其中的第一个。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-09-09
      • 2015-10-15
      • 2018-09-16
      • 2021-07-04
      • 2013-05-02
      • 2022-01-25
      • 2019-01-31
      • 1970-01-01
      相关资源
      最近更新 更多