当前位置: 首页 > 知识库问答 >
问题:

如何计算列表中自定义数据类型的值?

李和昶
2023-03-14

我看到了一些关于hashMaps的东西,但我们的工作还没有做得那么远。请保持您的答案和有用的建议,尽可能简单,你可以管理。

我有一个自定义的数据类型,它已经被制作好了,并且可以完美地工作,叫做color。该类型的唯一值是Color.Blue、Color.Red、Color.Yellow和Color.Green。

我的任务是返回颜色。如果列表中的颜色比其他颜色多,则返回颜色。如果列表中的颜色比其他颜色多,则返回颜色。如果列表中的颜色比其他颜色多,则返回颜色。

我进行了研究,并提出了以下代码:

public Color callColor(List<Card> hand) {

    int blueCards = Collections.frequency(hand, Color.BLUE);
    int redCards = Collections.frequency(hand, Color.RED);
    int greenCards = Collections.frequency(hand, Color.GREEN);
    int yellowCards = Collections.frequency(hand, Color.YELLOW);
    Color changeColorTo = Color.NONE;

    if ((blueCards > redCards) || (blueCards > greenCards) || (blueCards > yellowCards)) {
        changeColorTo = Color.BLUE;
    }

    if ((redCards > blueCards) || (redCards > greenCards) || (redCards > yellowCards)) {
        changeColorTo = Color.RED;
    }

    if ((greenCards > redCards) || (greenCards > blueCards) || (greenCards > yellowCards)) {
        changeColorTo = Color.GREEN;
    }

    if ((yellowCards > redCards) || (yellowCards > greenCards) || (yellowCards > blueCards)) {
        changeColorTo = Color.YELLOW;
    }
    return changeColorTo;
}

但是这段代码导致BlueCard、RedCard、greenCards和yellowCards都为0,而它们绝对不应该为零。

因此,在本例中,我的collections实现根本不起作用。救命啊!

共有2个答案

丁鹏鹍
2023-03-14

输入列表包含卡片而不是颜色。

所以可能的问题解决方法是先将你的卡片列表转换成颜色列表:

hand.stream().map(Card::getColor).collect(Collectors.toList());

结果,您将得到颜色列表,所以您现在可以在它上使用Collection.Frequency了,而不是在初始卡片列表上使用Collection.Frequency。

但是,还有很多其他方法可以解决问题,比如使用另一个集合。

蔺昊穹
2023-03-14

您将一个列表 传递给该方法,但您将在该列表中搜索某个颜色的频率。这就是为什么所有的计数都等于0。

 类似资料:
  • 4.4.5 数据类型的自定义 在有了一些数据类型后,程序员还可定义这些数据类型的别名或指针类型。表达这种定义的伪指令是TYPEDEF,其定义形式如下: 新数据类型名 TYPEDEF [位距] [PTR] 数据类型 其中:“位距”是NEAR、FAR或PROC等。 例如: CHAR TYPEDEF BYTE ;给BYTE定义另一个别名CHAR PCHAR TYPEDEF PTR CHAR ;定义一个字

  • 问题内容: 我对SQLITE相当陌生,我注意到只有4种数据类型,但是我在网上看到的例子中人们在放置自己的数据类型。我对此不太了解,想知道是否有人可以向我解释。例如,我看到一列将保存日期,并且给定的数据类型是不存在的时间戳。默认是什么?自己制作时默认为文本吗? 问题答案: 使用动态类型系统。只有五个存储类:NULL,整数,实数,文本和blob。(来源:SQLite版本3中的数据类型。) 并且,引用该

  • 问题内容: 我正在创建一个numpy数组,该数组将填充我制作的特定类的对象。我想初始化数组,使其仅包含该类的对象。例如,这是我想做的事,如果我做这件事会发生什么。 我可以做这个: 然后将的每个元素分配为一个对象(或任何其他类型的对象)。从编程的角度(类型检查)和数学的角度(对函数集进行操作)的角度来看,如果我能够拥有一个s数组,那将是如此的巧妙。 我可以使用任意类指定numpy数组的数据类型吗?

  • 例如:在pojo类中使用Date对象,将其序列化为默认格式“2016-09-27T12:11:17.430Z”。我只需要序列化它来显示日期值,去掉与时间相关的信息。

  • 想给方法自定义数据类型,通过资料查到可以用 dataclass 这样就很简洁,但貌似传入必须是实例化的方式,我更希望是字典的形式,请问有什么简洁的好的方法?

  • 问题内容: 我有一堂课: 我想在“ JPA”专栏中使用它: 这就是Hibernate所说的: 如何使其了解我的自定义类型。我认为这很简单,但是在文档中找不到。 问题答案: 好吧,有很多方法: 用注释类,并具有: private Email email; 声明自定义值类型-参见此处(使用)