Java中如何去除List中的重复的值?
AAAA
AAAA
AAAA
BBBB
BBBB
CCCC
CCCC
CCCC
CCCC
遍历得到这些数据 不确定有多少种 也可能有DDDDD,不确定有每种数据有多少条 ,我想得到每种数据的单个 如AAAA BBBB CCCC,去除每种数据重复的部分!如何实现啊。求大概代码!!!!
[解决办法]
方法一:循环元素删除
// 删除ArrayList中重复元素
public static void removeDuplicate(List list) {
for ( int i = 0 ; i < list.size() - 1 ; i ++ ) {
for ( int j = list.size() - 1 ; j > i; j -- ) {
if (list.get(j).equals(list.get(i))) {
list.remove(j);
}
}
}
System.out.println(list);
}
public static void removeDuplicate(List list) {
HashSet h = new HashSet(list);
list.clear();
list.addAll(h);
System.out.println(list);
}
public static void removeDuplicateWithOrder(List list) {
Set set = new HashSet();
List newList = new ArrayList();
for (Iterator iter = list.iterator(); iter.hasNext();) {
Object element = iter.next();
if (set.add(element))
newList.add(element);
}
list.clear();
list.addAll(newList);
System.out.println( " remove duplicate " + list);
}
publi List<String> getNewList(List<String> li){
List<String> list = new ArrayList<String>();
for(int i=0; i<li.size(); i++){
String str = li.get(i); //获取传入集合对象的每一个元素
if(!list.contains(str)){ //查看新集合中是否有指定的元素,如果没有则加入
list.add(str);
}
}
return list; //返回集合
}
public class Test{
public static void main(String[] args){
ArrayList<String> arr = new ArrayList<String>();
arr.add("aaa");
arr.add("bbb");
arr.add("aaa");
arr.add("ccc");
arr = getNewList(arr); //方法去重
System.out.println(arr);
}
}
[解决办法]
List list = new ArrayList();
list.add("AAAA");
list.add("AAAA");
list.add("BBBB");
list.add("CCCC");
list.add("DDDD");
list.add("AAAA");
list.add("BBBB");
List list1 = new ArrayList();
for(int z=0;z<list.size();z++)
{
if(!list1.contains(list.get(z))){
list1.add(list.get(z));
}
}