有一个ArrayList,如何找出其中相同的元素及个数,说说实现原理.

如题所述

import java.util.ArrayList;
import java.util.HashSet;
import java.util.List;
import java.util.Set;

public class test2 {
public static void main(String[] args) {
List<String> list1 = new ArrayList<String>();
list1.add("1");
list1.add("1");
list1.add("2");
list1.add("3");
list1.add("5");
list1.add("8");
list1.add("1");

Set<String> set = new HashSet<String>();
set.addAll(list1);
System.out.println(list1.size()-set.size());
}
}

List中可以存放重复的数据,但是Set中不能存放重复的数据,所以把List转为Set后,就只剩下不重复的数据了,总数-不重复的个数=重复的个数。

温馨提示:答案为网友推荐,仅供参考
第1个回答  推荐于2018-02-27
ArrayList<T>;
1,定义一个Map<T,Integer>;
2,循环ArrayList,map.put(T,map.get(T)+1);
3,map.get(T)找出你想要的元素个数。
第3个回答  2014-04-01
get(int index)
返回此列表中指定位置上的元素。
ArrayList<String> arrays=new ArrayList<String>();
arrays.add("A");
arrays.add("B");
arrays.add("C");
arrays.add("D");
arrays.add("A");
arrays.add("C");
arrays.add("A");
int count=0;
for(int i=0;i<arrays.size();i++){
arrays.get(i);
for(int j=0;j<arrays.size();j++){

if(arrays.get(i).equals(arrays.get(j))){
count++;
}
}
System.out.println(arrays.get(i)+"相同的有"+count);
count=0;
}本回答被提问者和网友采纳
第4个回答  2014-04-01
你说的是哪个啊?
相似回答