我有以下Java POJO
public class Game {
public Game(){}
private String id;
private String startDate = "";
}
如何实现在游戏对象列表中确定重复字段的功能?
例如,当两个游戏有相同的开始日期?
我以前使用过comparator
,但仅在根据最早日期等对对象进行排序时使用过,但它能否用于对重复项进行排序?
只要startDate
是私有的,比较器就可能无法访问该字段。众所周知的方法equals()
可以被覆盖,但如果您想检查对象是否符合不同的相等标准,这是不够的。
但是您可以实现一个getter,它将向比较器提供start Date
。或者你可以imement方法布尔isSameDateAs(游戏其他)
,将返回true为重复。
如果想找到“重复”条目,请对元素进行分组,并查找大小相同的组
在Java8中,这就像:
games
.stream()
.collect(Collectors.groupingBy(Game::getStartDate))
.values()
.stream()
.filter(group -> group.size() > 1)
.map(group -> group.get(0))
.collect(Collectors.toList());
比较器。。。它能用于对重复项进行排序吗?
是的。当compareTo
返回0时,它将所有相等的元素组合在一起。
确定游戏对象列表中的重复字段?
做一个比较器
if (game1.startDate.equals(game2.startDate)) return 0;
顺便说一下,您可能希望使用某种类型的
LocalDateTime
对象,而不是字符串。然后你就可以实际订购日期/时间了
我试图实现对存储在列表中的对象字段值的排序。 我找到了下面的解决方案来比较字符串,但是我如何比较字符串值并相应地排序? 我想先排序"Y"状态值然后"N"
假设我们有: 我们有一个实例列表,即
问题内容: 这个问题已经在这里有了答案 : 如何根据对象的属性对对象列表进行排序? (8个答案) 1年前关闭。 我有一个看起来像这样的对象列表。 Card(10,’H)在这里不是元组,而是对象。我知道如果列表中的每个项目都是元组形式的,如何对列表进行排序,就像这样, 但我不知道如何对对象列表进行排序。我想按第一个输入值(即Card()中的数字)对列表进行排序 我怎样才能做到这一点? 编辑:这是Ca
我有一个小问题,希望你能帮我解决。 我有一个名为Entity的类,它有几个属性,其中两个属性是id和实用程序: 然后,我在ArrayList中有几个Entity对象,如下所示: 现在,我想根据公用事业实体对列表进行排序。我使用一个定制的比较器,尝试了几种类似我在这里读到的解决方案: 但是在这条线上: 我遇到了以下错误:int不能被解引用,我不知道如何修复它。你们能帮我解决这个问题或者给出另一个解决
我有两个具有一对多关系的实体,它们通过复合主键连接在一起。由于Spring Data为oracle数据库生成错误计数不同的查询,我SQL笛卡尔连接的输出,这导致每一行子对象都重复父对象的行。我需要找出基于复合键的不同的父对象,然后在列表中为父对象添加每个子对象,并将其设置为父对象的属性 我能够根据父对象的组合键找到不同的父对象。以下是相关代码 假设我有以下输入 我需要产生以下输出 这方面的任何帮助
问题内容: 我正在创建一个JSON对象,其中添加了一个键和一个数组值。键和值的值都来自TreeSet,该树具有排序形式的数据。但是,当我在json对象中插入数据时,它会随机存储,没有任何顺序。当前是我的json对象: 我的代码是: 有什么方法可以将数据存储到while循环本身中的json对象中? 问题答案: 它与Google Gson API一起使用。试试看。