首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Java 8中自定义地图的过滤和转换功能

Java 8中自定义地图的过滤和转换功能
EN

Stack Overflow用户
提问于 2016-07-06 23:38:13
回答 0查看 76关注 0票数 2

我有一个任务,我需要实现一些抽象方法的功能。我的想法是使用Java 8,但我对使用Java 8编程有点陌生。下面是我需要实现的抽象类:

代码语言:javascript
复制
public abstract class SortedMap<K extends Comparable<K>, V> implements Iterable<Pair<K, V>>
{
    /**
     * Returns a map where all values have been translated using the function
     * <code>f</code>.
     */
     public abstract <C> SortedMap<K, C> map(Function<? super V, ? extends C> f);

    /**
     * Returns a map containing only the keys that satisfies
     * the predicate <code>p</code>.
     */
    public abstract SortedMap<K, V> filter(Predicate<? super K> p);

    // ...
}

到目前为止,我(使用Java 8)得到的是:

代码语言:javascript
复制
public final class SortedMapImpl<K extends Comparable<K>, V> extends SortedMap<K,V>
{
    private final Map<K, V> map;

    private SortedMapImpl(Map<K, V> map)
    {
        this.map = new HashMap<K, V>(map);
    }

    @Override
    public <C> SortedMap<K, C> map(Function<? super V, ? extends C> f)
    {
        // TODO Auto-generated method stub
        return null;
    }

    @Override
    public SortedMap<K, V> filter(Predicate<? super K> p)
    {
        final Map<K, V> filteredMap = map.entrySet()
                                         .stream()
                                         .filter(Predicate<? super Entry<K, V>> p)
                                         .collect(Collectors.toMap(p -> p.getKey(), p -> p.getValue()));

        return new SortedMapImpl<K, V>(filteredMap);
    }

    // ...

}

正如您所看到的,目前我还不知道如何实现map()方法,而filter方法至少有一部分是错误的。任何帮助都是非常感谢的!

EN

回答

页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/38228031

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档