我有一个物品清单。每个对象都有一个级别属性(int 1、2或3)、一个城市属性(“New York”、“Milan”、“London”)和泛型字符串FamilyID。列表中对象的数量是随机的。我需要创建一个子列表(或任何其他集合/数据结构),它是由列表中的第一个对象组成的,具有级别和城市的任意组合(我不关心FamilyID)。
希望用一个例子让我的要求更清楚:
InitialList: [1, Milan, ID1][1, London, ID1][1, Milan, ID5][2, Lodon, ID1][2, London, ID6],[3, New York, ID2]
ExpectedOutput: [1, Milan, ID1][1, London, ID1][2, London, ID1][3, New York, ID2]
输出集合是具有(level,City)任意组合的第一个对象的列表。
您需要在这里基于以下伪逻辑编写一个定制的比较器:
在这种情况下,您可以将流
与收集器
一起使用。它将是这样的:
initialList.stream().collect(Collectors.toMap(City::key, city -> city, (f, s) -> f))
完整代码示例:
public class Stack {
public static void main(String[] args) {
List<City> initialList = List.of(new City(1, "Milan", "ID1"),
new City(1, "London", "ID1"),
new City(1, "Milan", "ID5"),
new City(2, "London", "ID1"),
new City(2, "London", "ID6"),
new City(3, "New York", "ID2"));
final ArrayList<City> expectedOutput = new ArrayList<>(initialList.stream().collect(Collectors.toMap(City::key, city -> city, (f, s) -> f)).values());
System.out.println(expectedOutput);
}
private static class City {
private final long level;
private final String city;
private final String family;
public City(long level, String city, String family) {
this.level = level;
this.city = city;
this.family = family;
}
public String key() {
return level + "_" + city;
}
@Override
public String toString() {
return new StringJoiner(", ", City.class.getSimpleName() + "[", "]")
.add("level=" + level)
.add("city='" + city + "'")
.add("family='" + family + "'")
.toString();
}
}
问题内容: 请考虑下表: 在这里,我要找回它们是具有独特组合的记录,和。如果存在两个或多个这些字段的唯一组合,我想选择其中的第一个。 作为上表数据的示例,我需要的输出是 (由于记录3和4具有相同的组合,我想只记录3,因为它是第一次出现) 我可以使用一条SQL语句执行此操作吗? 问题答案:
在上面的示例中,子集列表有23个元素。对于gridSize为12,子集列表中的23个元素应该分布在12个分区中,因此在这种情况下,每个分区应该有2个子集列表中的元素。 这个问题与spring批处理分区有关。列表中的整数实际上是spring批处理程序要处理的用户ID。有些用户比其他用户需要更多的处理时间。因此在分区过程中可能发生的情况是,某些分区可能包含比其他分区占用更多处理时间的更多用户。这会导致
尝试使用这个资源:仍然不走运,我如何从Java8 Stream的一些类属性中获得列表?
这是我无法解决的问题: 我有一个Clients表和一个box表 每个框属于一个客户端 我需要显示所有客户机,其中完成了属于每个客户机的所有框,这基本上就是where box。status=“已完成”。 我很难掌握如何在一个查询中完成这一切: -获取所有客户端 -获取属于每个客户端的所有框的计数($总框) -获取属于每个客户端的完成框的计数($完成框) -计算如果只显示客户端的位置 我用这个来得到C
问题内容: 我的字符串列表如下所示: 我的期望是,我想检查父列表是否包含 序列 子列表,然后基于子列表获取父列表中的开始索引和结束索引。 从上面的示例: 我尝试使用方法,但它不在乎列表项的顺序,因此无法从此方法获取开始和结束索引。 我正在寻找最快的方法,因为我的列表中有很多数据,而且我必须从许多输入字符串中进行搜索。 任何帮助,将不胜感激! 更新 : 我需要获取所有子列表的索引都包含在父列表中。例
我想要获取与列名相关的列值,如在policy no string中获取TXT_Policy_no等,因为excel工作表的值可以满足要求,所以我想要读取基于列名的值,以更加安全。 我的java代码: