【问题标题】:Size of Iterable<Type>可迭代的大小<类型>
【发布时间】:2013-12-19 09:20:59
【问题描述】:

假设一个方法返回Iterable&lt;Type&gt;。有没有比我现在做的更优雅、更有效的方法来检查返回的内容是否为空(或某个给定大小)?

int i = 0;
for (Type dummy : method)
  i++;

if (i == 0)
...

【问题讨论】:

  • 你什么都不做
  • 检查是否为空:Iterator#hasNext()。对于给定的大小,没有其他解决方案 (AFAIK)。

标签: java generics iterable


【解决方案1】:

您可以使用iterator().hasNext() 检查Iterable 是否为空。

    Iterable<Type> i = /* assigned somehow */;
    i.iterator().hasNext();

【讨论】:

    【解决方案2】:

    你可以使用 Guava 的Iterables.isEmpty:

    boolean empty = Iterables.isEmpty(method);
    

    要查找 Iterable 的大小,还有 Iterables.size:

    int size = Iterables.size(method);
    

    【讨论】:

      【解决方案3】:

      如果您有Iterable,则提供iterator()。检查hasNext()

      还有javadoc

      【讨论】:

        【解决方案4】:
        Iterator<String> itr = collectionObject.iterator();
        while (itr.hasNext()) {
        //process here with next method on itr object
        }
        if (element.equals("")) {
        System.out.println("Empty...");
        }    
        

        【讨论】:

          猜你喜欢
          • 2019-07-02
          • 1970-01-01
          • 2022-09-29
          • 2011-03-21
          • 2021-04-22
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2020-10-31
          相关资源
          最近更新 更多