修改 ArrayList 中的重复项
Amending duplicate items inside an ArrayList
我有一个名为 Feeds
的 class,它包含许多成员变量。其中就是String
类型的变量date
。我实现了一个 ArrayList
的提要并按顺序添加对象。
我想做的是搜索具有相同日期 String
的对象,如果出现次数超过 1,则重复日期 String
设为 ""
(空)但是您仍然会有一个对象,该对象的日期字符串完好无损。
像这样:
Object1 (date : "01-01-2015");
Object2 (date : "01-01-2015");
Object3 (date : "04-01-2015");
//after the required code
Object1 (date : "01-01-2015");
Object2 (date : "");
Object3 (date : "04-01-2015");
List<Feeds> mFeeds = new ArrayList<Feeds>();
//add objects to list
mFeeds.add(...);
for(Feeds f : mFeeds){
//search for objects that have the same date
//skip the first repeatable and make the rest empty ""
}
您可以使用 HashSet<String>
来查找您是否已经遇到日期 :
Set<String> dups = new HashSet<> ();
for(Feeds f : mFeeds) {
if (dups.contains(f.getDate())
f.setDate(null); // this date already appeared in the list, so set it to null
else
dups.add(f.getDate()); // this is the first occurrence of this date
}
在Java8中是单行的:
Set<String> dups = mFeeds.stream().map(f -> f.getDate()).collect(Collectors.toSet());
我有一个名为 Feeds
的 class,它包含许多成员变量。其中就是String
类型的变量date
。我实现了一个 ArrayList
的提要并按顺序添加对象。
我想做的是搜索具有相同日期 String
的对象,如果出现次数超过 1,则重复日期 String
设为 ""
(空)但是您仍然会有一个对象,该对象的日期字符串完好无损。
像这样:
Object1 (date : "01-01-2015");
Object2 (date : "01-01-2015");
Object3 (date : "04-01-2015");
//after the required code
Object1 (date : "01-01-2015");
Object2 (date : "");
Object3 (date : "04-01-2015");
List<Feeds> mFeeds = new ArrayList<Feeds>();
//add objects to list
mFeeds.add(...);
for(Feeds f : mFeeds){
//search for objects that have the same date
//skip the first repeatable and make the rest empty ""
}
您可以使用 HashSet<String>
来查找您是否已经遇到日期 :
Set<String> dups = new HashSet<> ();
for(Feeds f : mFeeds) {
if (dups.contains(f.getDate())
f.setDate(null); // this date already appeared in the list, so set it to null
else
dups.add(f.getDate()); // this is the first occurrence of this date
}
在Java8中是单行的:
Set<String> dups = mFeeds.stream().map(f -> f.getDate()).collect(Collectors.toSet());