黑马程序员技术交流社区
标题:
求解去重复
[打印本页]
作者:
我干阿衰
时间:
2015-5-10 21:07
标题:
求解去重复
import java.util.ArrayList;
/*
* 需求:通过ArrayList集合存储多个字符串元素对象,并去除集合中重复的元素对象
*
*/
public class ArrayListTest {
public static void main(String[] args) {
ArrayList list = new ArrayList();
//添加元素
list.add("范冰冰");
list.add("李晨");
list.add("李晨");
list.add("李晨");
list.add("范冰冰");
//通过选择排序算法,实现集合中去除重复元素
for (int i = 0; i < list.size()-1; i++) {
for (int j = i+1; j < list.size(); j++) {
//list.get(i) 与 list.get(j)
if (list.get(i).equals(list.get(j))) {
list.remove(j);
//j--;没有j--的时候为什么重复去不了
}
}
}
System.out.println(list);
}
//结果:[范冰冰, 李晨, 李晨]
作者:
ye646682485
时间:
2015-5-10 21:41
import java.util.*;
class ArrayListTest1
{
public static void main(String[] args)
{
ArrayList al= new ArrayList();
al.add("java01");
al.add("java02");
al.add("java02");
al.add("java03");
al.add("java04");
al.add("java05");
al.add("java05");
System.out.println("旧的"+al);
RemoveMore rm = new RemoveMore();
Object s =rm.Remove(al);
System.out.println("新的"+s);
}
}
class RemoveMore
{
private ArrayList arraylist ;
RemoveMore()
{
arraylist = new ArrayList();
}
public ArrayList Remove(ArrayList al)
{
ListIterator li =al.listIterator();
while(li.hasNext())
{
Object obj=li.next();//此循环next最好就一次
if(!arraylist.contains(obj))
arraylist.add(obj);
}
/*
for(ListIterator li = al.listIterator();li.hasNext();)
{
Object obj = li.next();
if(!arraylist.contains(obj))
arraylist.add(obj);
}
*/
return arraylist;
}
}
复制代码
作者:
肖某
时间:
2015-5-10 21:50
同求,知道之后告诉我啊
作者:
潘成旺
时间:
2015-5-10 21:56
你可以用TreeSet做转换,将ArrayList遍历存进TreeSet比较器按照条件比较,存储完毕相同的自然就去掉了,再遍历TreeSet将TreeSet集合中的元素重新存进ArrayList
作者:
thoris
时间:
2015-5-10 22:50
如果没错的话 应该是size变了
当判断第一个李晨时 跟第二个李晨比较 第二个被去掉 数组长度变成了3(最后一个范冰冰已经干掉了)
这个时候j++ 就是3了 循环不执行
老毕视频里用的是 新建一个list集合 然后用contains 去判断 没有的话 就往里面添加
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2