如何使用流为哈希映射实现isEmpty()?

时间:2019-03-29 20:49:10

标签: java hashmap java-stream

我正在实现自己的哈希图,并尽可能使用流。 我无法找出isEmpty()的正确语法。

我尝试了多种形式:

 return buckets.entrySet().stream().forEach(List::isEmpty());

这是代码的一部分:

public class HashMap<K, V> implements Map<K, V> {

    private static final int DEFAULT_CAPACITY = 64;
    private List<List<Entry<K, V>>> buckets;
    private int modCount = 0;
    private KeySet keySet;
    private EntrySet entrySet;
    private ValuesCollection valColl;

    //CTOR
    public HashMap() {
         buckets = new ArrayList<>(DEFAULT_CAPACITY);

         for (int i = 0; i < DEFAULT_CAPACITY; ++i) {
            buckets.add(i, new LinkedList<Entry<K, V>>());
         }
    }
}

我想编写一个简单的流,例如:

return buckets.stream().mapToInt(List::size).sum();

isEmpty()。

1 个答案:

答案 0 :(得分:2)

您可以使用此:

public boolean isEmpty() {
    return buckets.stream().allMatch(List::isEmpty);
}

如果true为空或所有子列表为空,则返回buckets

相关问题