簡體   English   中英

具有通用類型的Map.Entry的樹集實現

[英]Treeset Implementation of Map.Entry with Generic Types

我正在構建一個頻率表實現,其中哈希表表元素是鏈接的樹集。 鍵/值對類提供了如下類定義:

public class CountablePair<F, S extends Comparable<? super S>> implements Comparable<S> {

我希望創建一個新類EntryTreeSet,該類實現Map.Entry,並在其中包括CountablePairs樹集。 我當前用於類聲明,其樹集變量及其構造函數的代碼如下:

public class EntryTreeSet<F,S> implements Map.Entry<F,S> {

private TreeSet<CountablePair<F,S>> tree;

public EntryTreeSet() {
    this.tree = new TreeSet<CountablePair<F,S>>();
}

但是,這將產生以下錯誤聲明:

EntryTreeSet.java:19:錯誤:類型參數S#1不在類型變量S#2私有TreeSet>樹的范圍內; ^其中S#1,S#2是類型變量:S#1擴展了在類EntryTreeSet中聲明的對象S#2擴展了在類CountablePair EntryTreeSet.java中聲明的Comparable:錯誤:類型參數S#1不在以下范圍內類型變量S#2 this.tree = new TreeSet>(); ^其中S#1,S#2是類型變量:S#1擴展在類EntryTreeSet中聲明的對象S#2擴展在類CountablePair中聲明的Comparable

我想知道如何使樹集容納CountablePair類的實例。

似乎您的代碼中唯一的問題是EntryTreeSet聲明中S參數的邊界不EntryTreeSet 這樣的類聲明可以正確編譯:

public class EntryTreeSet<F, S extends Comparable<? super S>> 
                         implements Map.Entry<F, S> {

S是原始類型,這就是為什么會出現編譯錯誤。 試試下面的代碼。

public class EntryTreeSet<F,S extends Comparable<? super S>> implements Map.Entry<F,S> 

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM