首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >TreeSet重复

TreeSet重复
EN

Stack Overflow用户
提问于 2017-05-01 06:32:00
回答 1查看 238关注 0票数 2

我在试着理解别人的代码。

代码语言:javascript
复制
public class Card  {
    String symbol;
    int no;

    public String getSymbol() {
        return symbol;
    }

    public void setSymbol(String symbol) {
        this.symbol = symbol;
    }
    public int getNo() {
        return no;
    }
    public void setNo(int no) {
        this.no = no;
    }

    public String toString(){
        return symbol+" "+no;
    }

}
class MyComparator1 implements Comparator<Card> {

    @Override
    public int compare(Card arg0, Card arg1) {

        return arg0.getSymbol().compareTo(arg1.getSymbol());
    }

}

public class Card2 {
public static void main(String[] args) {
    Card c2;        
    Scanner s = new Scanner(System.in);
    Set<Card> c = new TreeSet<Card>(new MyComparator1());
    while(c.size()<4) {
        System.out.println("Enter symbol and number");
        String symbol = s.next();
        int no = s.nextInt();
        c2 = new Card();
        c2.setSymbol(symbol);
        c2.setNo(no);
        c.add(c2);
    }
    Iterator<Card> it = c.iterator();
    {
        while (it.hasNext()) {
            Card c1 = it.next();
            System.out.println(c1.toString());
        }
    }
}
}

在这里,我们试图显示不同的颜色与各自的数字,直到我们得到4种不同的颜色。

我们在这里使用树集。示例,如果输入此输入

代码语言:javascript
复制
a 1
b 2
c 2
b 4
d 2

输出是

代码语言:javascript
复制
a 1
b 2
c 2
d 2

在这个集合中,如何识别b2和b4之间的差异?如果我们把地图和符号作为钥匙,那么它是在可立的,但如何设置,发现相似性,我们只是通过卡片对象?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-05-01 06:34:15

传递给MyComparator1构造函数的TreeSet实例决定了哪些对象被认为是唯一的,在您的示例中,是symbol属性决定了唯一性。

但是使用symbolno来确定唯一性更有意义,因为具有相同符号但不同数字的两张卡片不应该被认为是相同的(例如,b 2b 4不应该被认为是相同的)。

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

https://stackoverflow.com/questions/43715239

复制
相关文章

相似问题

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