`

List重复记录

阅读更多

现在有一个List里面有一些字符串,比如["a","b","b","a","c"],现在需要一个list,里面只有不重复的数据,并保持原来的顺序,比如["a","b","c"]。用list来处理很容易实现,list1是保持原来的数据,现在再构造一个list2来存储需要的结果。代码如下:
for (String c: list1) {
if (!list2.contains(c)) {
list2.add(c);
}

}

但是这样的算法复杂度是O(n²)。问题的关键在于list2.contains(c)方法会逐个遍历记录。那么如何减少这种遍历呢?方法是组合另外一个数据结构Map,用来存储以及存在的元素,这样就加快了处理速度。代码如下:
String t = null;
for (String c:list1) {
t = map.get(c);
if (t == null) {
list3.add(c);
map.put(c, c);

}

}

分享到:
评论

相关推荐

    list和数组去重,记录重复次数

    java list集合和数组去除重复项,并记录重复次数个数。

    禁止List列表添加重复信息的VB源码.rar

    VB拒绝让List列表添加重复信息,这个功能应该比较实用吧,如果添加的记录有重复,程序会弹出提示,告之添加失败,如果我们需要手动添加的数据比较多,本模块会大大提升你的工作效率,因为有时候我们可能会手误操作,...

    Table重复表单组转json数组

    table添加记录,由于name相同,form直接获取存在问题,所以将Table中的每条重复元素转为json数组在传给后台。

    A*算法c#.net

    1. 把起点加入 open list (优先级队列)。 2. 重复如下过程: a. 遍历 open list ,查找 F 值最小...◆ 如果它不在 open list 中,把它加入 open list ,并且把当前方格设置为它的父亲,记录该方格的 F , G 和 H 值。

    python去除文件中重复的行实例

    如果出现在res_list,我们就认为该行句子已经重复了,可以再加入到记录重复句子的list中。 如下代码: # -*- coding: UTF-8 -*- #程序功能是为了完成判断文件中是否有重复句子 #并将重复句子打印出来 res_list = []...

    sleimok :(非常)通过Node.js进行简单的重复文件查找

    通过递归遍历目录,MD5哈希文件并比较散列来查找重复文件将找到的文件记录在.json列表中,进行打印并给出(非常)简短的报告要求删除确认与传递的选项无关 设置 下载仓库并解压缩npm install在根目录中 用法 选项: ...

    用于RabbitMQ队列的工具,包括转储,重复数据删除和发布消息的命令-PHP开发

    Roger-Q Roger-Q是处理RabbitMQ队列的工具,它包括用于转储,重复数据删除和发布消息的命令。 安装运行此命令可从Github下载最新版本...请运行roger-q.phar list要查看命令的所有选项,请运行roger -q.phar {commmand}-

    一眼看懂Java中的集合

    此篇文章是学习Java中的集合时自己总结的笔记,主要记录了集合的底层原理、List、Set、Queue等集合的特点、集合的实现类的特点以及各个实现类底层是原理。

    C代码C代码通讯录通讯录通讯录

    C语言源程序代码-通讯录 /*10.3.2源程序*/ /******头文件(.h)***********/ #include "stdio.h" /*I/O函数*...void list(ADDRESS t[],int n); /*显示记录*/ void search(ADDRESS t[],int n); /*按姓名查找显示记录*/

    Dbutils项目实例

    ScalarHandler :将ResultSet中一条记录的其中某一列的数据存成Object org apache commons dbutils wrappers SqlNullCheckedResultSet :对ResultSet进行操作 改版里面的值 StringTrimmedResultSet :去除ResultSet...

    渝海百度收录查询工具 1.3 Build 091123.rar

    2、查询历史显示优化,重复记录只显示一个; 3、修正历史记录URL错误格式,方便搜索引擎抓取 4、修正查询结果内容百度分页链接URL错误 渝海百度收录查询工具主要功能: 1、输入域名,查询百度针对该域名最近...

    [详细完整版]数据结构05.doc

    第五章 线性表和串习题 5.1若将顺序表中记录其长度的分量listlen改为指向最后一个元素的位置last,在实 现各基本运算时需要做那些修改? 5.2试用顺序表表示较多位数的大整数,以便于这类数据的存储。请选择合适的...

    python入门到高级全栈工程师培训 第3期 附课件代码

    02 ORM多表操作之一对多增加记录 03 ORM多表操作之一对多查询之对象查询 04 ORM多表操作之一对多查询之双下划线查询 05 ORM多表操作之多对多添加记录 06 ORM多表操作之多对多查询 07 ORM多表操作之F查询与Q查询 08 ...

    酒店预订数据集 CSV 11W+记录

    is_repeated_guest 如果访客是重复访客,则为二进制指标(1 表示重复,否则为 0)。 previous_cancellations 房客之前取消预订的次数。 previous_bookings_not_canceled 客人之前未取消的预订数量。 reserved_room_...

    leetcode分类-leetcode-algorithm:Leetcode算法记录

    leetcode 分类 leetcode-algorithm 把刷过的题和思路记录下来,总结方法。 algorithm-pattern里是按照问题类别划分的,题目相对简单,作为入门不错。...在不同目录下会有重复的题目,最优解基本都在problem-list中

    Java面试宝典2010版

    2. 用table显示n条记录,每3行换一次颜色,即1,2,3用红色字体,4,5,6用绿色字体,7,8,9用红颜色字体。 3、HTML 的 form 提交之前如何验证数值文本框的内容全部为数字? 否则的话提示用户并终止提交? 4、请写...

    程序员面试刷题的书哪个好-CPP_Learning:记录下C++语言学习

    程序员面试刷题的书哪个好 CPP_Learning 记录下C++语言学习,鄙人觉得C++语言是一门艺术 中科大软件学院C++课程 本人是19级合肥软件设计,C++课程是石竹老师上的,以C++98为基础讲解的 ...算法题:最长不重复字

    人工智能 广度优先搜索BFS和A*搜索策略 C语言实现代码+实验报告

    ② 判断移动后的状态是否与之前已经拓展过或存储的结点状态重复,若重复则删除,反之把状态存入表中。 ③ 检查新状态是否与目标状态相同,若是则输出移动路径,搜索结束。反之指针指向open表中的下一个结点,重复...

    ip地址库 很全的库

    // 判断是否这个地点里面包含了s子串,如果包含了,添加这个记录到List中,如果没有,继续 if (loc.country.indexOf(s) != -1 || loc.area.indexOf(s) != -1) { IPEntry entry = new IPEntry(); ...

    leetcode1004-leetcode:leetcode删号重练个人记录:)

    leetcode 1004 leetcode ...未通过重复2-4/或查看优秀解法 在README中更新下一次的题目 刷题记录 Array (20/20) Hash Table (20/20) Linked List(20/20) Two Pointers(12/20) 42 Trapping Rain Water

Global site tag (gtag.js) - Google Analytics