发布于2020-11-19 20:22 阅读(702) 评论(0) 点赞(13) 收藏(4)
public class ListPractice{
public static void main(String[] args) {
//1.定义一个List集合
List<Object> list = new ArrayList<Object>();//父类引用子类对象,向上转型
//先添加一些数据
list.add("张三");//String类型
list.add("李四");
list.add(2020);//这里统一会将基本数据类型包装成其包装类,即Integer类型
list.add(1970);
list.add('a');//Character类型
list.add('b');
list.add(11.18f);//Float类型
list.add(1.1f);
//再添加一些重复的数据
list.add("李四");
list.add(1970);
list.add('a');
list.add(1.1f);
//到此为止,List集合算是创建完毕。
//2.接下来需要定义一个去重复数据的方法
list = getList(list);//通过调用getList方法,得到去重复后的List集合
System.out.println(list);
}
//去重复的方法
public static List getList(List list) {
ListIterator li = list.listIterator();//获取传来的List集合对象list的迭代器,用List迭代器接收
int index = 0;//计算循环次数,当循环次数
Object object;//用于接收每次循环第一次遍历的第一个值,用于与后续遍历的值做比较
Object object1;//用于接收每次循环第一次遍历之后的值,用于与第一个值做比较
for(;true;) {
//在循环一开始进行判断,用于结束死循环。
if(index==list.size()) {
break;
}
object = null;//每次循环都需要初始化,即复原
object1 = null;//每次循环都需要初始化,即复原
while (li.hasNext()) {//迭代器中的方法,用于判断集合中是否存还在下一个数据
if (object==null) {//控制每次迭代器遍历只会赋一次值
for(int i=0;i<index;i++) {//该方法用于定位object的值,就是确保每次死循环的object值是下一个
li.next();
}
object = li.next();//每次死循环不变的值
}else {
object1 = li.next();//用于被比较的值
if(object.equals(object1)) {//判断被比较的值是否已存在,存在就移除掉。
li.remove();
}
}
}
index++;
li = list.listIterator();//不管执行了List迭代器的remove()方法与否,都重新初始化一次,这个操作就是确保数据是最新的。
}
return list;//返回去重复后的list
}
}
作者:gogogo
链接:http://www.javaheidong.com/blog/article/802/557b654ded9ac86cb33f/
来源:java黑洞网
任何形式的转载都请注明出处,如有侵权 一经发现 必将追究其法律责任
昵称:
评论内容:(最多支持255个字符)
---无人问津也好,技不如人也罢,你都要试着安静下来,去做自己该做的事,而不是让内心的烦躁、焦虑,坏掉你本来就不多的热情和定力
Copyright © 2018-2021 java黑洞网 All Rights Reserved 版权所有,并保留所有权利。京ICP备18063182号-2
投诉与举报,广告合作请联系vgs_info@163.com或QQ3083709327
免责声明:网站文章均由用户上传,仅供读者学习交流使用,禁止用做商业用途。若文章涉及色情,反动,侵权等违法信息,请向我们举报,一经核实我们会立即删除!