在我的应用程序中,我想从数组中获取第一个和重复的元素
例如,
String[] strings = {"one", "one", "one", "one", "one", "one", "one", "one", "one", "one", "one", "one"
, "two", "two", "two", "two", "two", "two", "two", "two", "two", "two", "two", "two", "two", "two", "two"
, "three", "three", "three", "three", "three", "three", "three", "three", "three", "three", "three"
, "four", "four", "four", "four", "four", "four", "four", "four", "four", "four"
, "five", "five", "five", "five", "five", "five"
, "six", "six", "six", "six", "six", "six", "six", "six", "six"
, "seven", "seven", "seven", "seven", "seven", "seven", "seven", "seven"
, "eight", "eight", "eight", "eight", "eight", "eight"
, "nine", "nine", "nine", "nine", "nine", "nine", "nine", "nine", "nine"
, "ten", "ten", "ten", "ten", "ten", "ten", "ten", "ten", "ten"};
对于上面的列表我希望得到像
的输出
一个
一个
2个
2个
3个
3个
4个
4个
5个
5个
6个
6个
7个
7个
8个
8个
9个
9个
10个
10个
答案 0 :(得分:0)
你可以试试这个
public static void main(String[] args) {
String[] strings = {"one", "one", "one", "one", "one", "one", "one", "one", "one", "one", "one", "one"
, "two", "two", "two", "two", "two", "two", "two", "two", "two", "two", "two", "two", "two", "two", "two"
, "three", "three", "three", "three", "three", "three", "three", "three", "three", "three", "three"
, "four", "four", "four", "four", "four", "four", "four", "four", "four", "four"
, "five", "five", "five", "five", "five", "five"
, "six", "six", "six", "six", "six", "six", "six", "six", "six"
, "seven", "seven", "seven", "seven", "seven", "seven", "seven", "seven"
, "eight", "eight", "eight", "eight", "eight", "eight"
, "nine", "nine", "nine", "nine", "nine", "nine", "nine", "nine", "nine"
, "ten", "ten", "ten", "ten", "ten", "ten", "ten", "ten", "ten"};
Map<String,Integer> itemMap=new LinkedHashMap<>();
for (String item:strings){
if(!itemMap.containsKey(item)){
itemMap.put(item,1);
}else{
itemMap.put(item, itemMap.get(item)+1);
}
}
for(Map.Entry<String, Integer> mapEntry:itemMap.entrySet()){
if(mapEntry.getValue()>1){
System.out.println(mapEntry.getKey()+"\n"+mapEntry.getKey());
}
}
}
答案 1 :(得分:0)
如果您使用的是Java8,则可以像这样使用Stream API。
Stream.of(strings)
.collect(Collectors.groupingBy(Function.identity(), Collectors.counting()))
.entrySet()
.stream()
.filter(entry -> entry.getValue() > 1)
.forEach(entry -> System.out.println(entry.getKey() + "\n" + entry.getKey()));