Java中ArrayList问题:删除一个ArrayList中的重复元素,注意留意一个问题
该问题有两种方法:
一
利用两个数组,此法简单,不讨论
二
利用一个数组,从第0个开始依次取元素,并在其后元素中查找是否有该元素,有则删掉后面的重复元素,依次遍历。---但是这种情况要特别注意,当后续元素中有连续的重复元素时,如不加上y--使y(待比较的后续元素)回退一个,很可能会因为我们删掉当前重复元素y后其后的连续重复元素顶上,导致忽略掉顶上的重复元素。
代码如下:
public static void main(String[] args) {
ArrayList array=new ArrayList();
array.add("hello");
array.add("world");
array.add("java");
array.add("hello");
array.add("java");
array.add("world");
array.add("world");
array.add("world");
array.add("java");
System.out.println("array:"+array);
for(int i=0;i<array.size();i++){
for(int j=i+1;j<array.size();j++){
if(array.get(i)==array.get(j)){
array.remove(j);
}
}
}
System.out.println("array:"+array);
}
结果为:
array:[hello, world, java, hello, java, world, world, world, java]
array:[hello, world, java, world]
漏掉了一个world,因在删除连续的几个world时,删除第一个重复的world后后一个顶上了,在删除元素后,我们没有回退一下判断刚刚顶上的元素。
改进:
public static void main(String[] args) {
ArrayList array=new ArrayList();
array.add("hello");
array.add("world");
array.add("java");
array.add("hello");
array.add("java");
array.add("world");
array.add("world");
array.add("world");
array.add("java");
System.out.println("array:"+array);
for(int i=0;i<array.size();i++){
for(int j=i+1;j<array.size();j++){
if(array.get(i)==array.get(j)){
array.remove(j);
j--;
}
}
}
System.out.println("array:"+array);
}
结果为
array:[hello, world, java, hello, java, world, world, world, java]
array:[hello, world, java]
正确。
Java中ArrayList问题:删除一个ArrayList中的重复元素,注意留意一个问题的更多相关文章
- Java实现 LeetCode 82 删除排序链表中的重复元素 II(二)
82. 删除排序链表中的重复元素 II 给定一个排序链表,删除所有含有重复数字的节点,只保留原始链表中 没有重复出现 的数字. 示例 1: 输入: 1->2->3->3->4- ...
- java基础 File 递归删除文件夹中所有文件文件夹 目录(包含子目录)下的.java文件复制到e:/abc文件夹中, 并统计java文件的个数
File 递归删除文件夹中所有文件文件夹 package com.swift.kuozhan; import java.io.File; import java.util.Scanner; /*键盘录 ...
- Java实现 LeetCode 83 删除排序链表中的重复元素
83. 删除排序链表中的重复元素 给定一个排序链表,删除所有重复的元素,使得每个元素只出现一次. 示例 1: 输入: 1->1->2 输出: 1->2 示例 2: 输入: 1-> ...
- Java实现 LeetCode 80 删除排序数组中的重复项 II(二)
80. 删除排序数组中的重复项 II 给定一个排序数组,你需要在原地删除重复出现的元素,使得每个元素最多出现两次,返回移除后数组的新长度. 不要使用额外的数组空间,你必须在原地修改输入数组并在使用 O ...
- Java实现 LeetCode 26 删除排序数组中的重复项
26. 删除排序数组中的重复项 给定一个排序数组,你需要在原地删除重复出现的元素,使得每个元素只出现一次,返回移除后数组的新长度. 不要使用额外的数组空间,你必须在原地修改输入数组并在使用 O(1) ...
- C#程序中:如何删除xml文件中的节点、元素。
C#中动态的清理xml文件中的垃圾信息是程序员必会的哦.这就像数据库一样,不会清理数据怎么可以呢?其实xml文件就可以用作一个小的数据库,存储一些简单的信息.所以,用C#程序实现xml文件的增.删.改 ...
- **请写出一段Python代码实现删除一个list里面的重复元素
通常涉及到去重操作最好使用set,但是考虑到某些时候可能遇到不允许使用set的情况,那就自己实现一下: l = [2, 4, 5, 6, 1, 3, 4, 5] def f(l, b=0, c=1): ...
- 77. Combinations (java 求C(n,k)的组合,排除重复元素)
题目: Given two integers n and k, return all possible combinations of k numbers out of 1 ... n. 解析:同求全 ...
- python从一个目录中复制全部文件图片至另一个目录中,及删除指定目录中的图片
import shutil import os #目录自己改一下即可,复制 path = "./static/imgs/" new_path = "./static/up ...
- Python代码实现删除一个list里面的重复元素
lst=[11,22,33,44,22,11,22,44] print(list(set(lst))) # 打印结果:[33, 11, 44, 22] d = {} for index,item in ...
随机推荐
- 各浏览器Cookie大小、个数限制
一.浏览器允许每个域名所包含的cookie数: Microsoft指出InternetExplorer8增加cookie限制为每个域名50个,但IE7似乎也允许每个域名50个cookie. Firef ...
- 配置安装theano环境(非GPU版)
终于成功配置了theano环境,但由于本机没有gpu,所以配置的是非gpu版本的theano,下面将具体过程进行描述(安装成功后,有时对python的各种库进行更新时,可能会导致某个模块无法调用其他被 ...
- fineuploader 上传jquery 控件
fineuploader 昨天用的一个jquery插件. 可参考这篇文章以前写的 file-uploader 跟 这个跟里面介绍的2个jquery 插件相比.觉得更强大写..版本号都3.9 了….. ...
- 关于@synchronized(self)的用法
@synchronized 的作用是创建一个互斥锁,保证此时没有其它线程对self对象进行修改.这个是objective-c的一个锁定令牌,防止self对象在同一时间内被其它线程访问,起到线程的保护作 ...
- 最好的JAVA IDE IntelliJ IDEA使用简介(一)—之界面元素
打开IDEA,(当第一次打开的时候出现的是一个欢迎页面,随便创建一个project来进入到IDEA的主界面),主界面显示如下: 主界面由6个主要区域组成(图中红色数字标注的) 1.菜单和工具栏 2.导 ...
- Chrome测试网站加载时间与流量消耗
加载10M内容,耗时近10秒钟 大概页面图片下载时,同时进行了,有的大图,下载要几秒钟
- HDOJ/HDU 2561 第二小整数(水题~排序~)
Problem Description 求n个整数中倒数第二小的数. 每一个整数都独立看成一个数,比如,有三个数分别是1,1,3,那么,第二小的数就是1. Input 输入包含多组测试数据. 输入的第 ...
- 社区发现(Community Detection)算法 [转]
作者: peghoty 出处: http://blog.csdn.net/peghoty/article/details/9286905 社区发现(Community Detection)算法用来发现 ...
- 折腾iPhone的生活——越狱
这次我也加入了越狱大军,也不是为的什么免费软件,只是遵从我玩机的本质,既然想要玩透这个机子,当然要所有都试过来,就果断越狱了,关于越狱的好处和坏处,我会在另外一篇博客里阐述,这篇博客主要就说怎么样进行 ...
- poj 1228 凸包
题目链接:http://poj.org/problem?id=1228 #include<cstdio> #include<cstring> #include<cmath ...