【方法3:Perl版本】删除Map中Value重复的记录,并且只保留Key最小的那条记录

icemouse210写了一个Perl版本的,发挥了脚本高度封装的优势。我把代码贴出来,供大家参考分享。

#!/user/bin/perl -w

use English;
use strict;
use warnings;

my %test_hash=(
    "A" => '1',
    "B" => '2',
    "C" => "2",
    "D" => "3",
    "E" => '3',
);

my @keys = keys %test_hash;

my %count = ();

my @unique_keys = grep { ++$count{$test_hash{$_}} < 2; } sort @keys;

foreach my $k (@unique_keys) {
    print "$k => $test_hash{$k}\n";
}
时间: 2025-01-26 19:56:22

【方法3:Perl版本】删除Map中Value重复的记录,并且只保留Key最小的那条记录的相关文章

【方法1】删除Map中Value重复的记录,并且只保留Key最小的那条记录

介绍     晚上无聊的时候,我做了一个测试题,测试题的大体意思是:删除Map中Value重复的记录,并且只保留Key最小的那条记录. 例如: I have a map with duplicate values:     ("A", "1");     ("B", "2");     ("C", "2");     ("D", "3");    

【方法2】删除Map中Value重复的记录,并且只保留Key最小的那条记录

根据guigui111111的建议:先把Map按Key从大到小排序,然后再把Key和Value互换.这也是一种很好的思路,我写了一下代码,顺便贴上来,供大家参考与分享. package shuai.study.map; import java.util.Comparator; import java.util.HashMap; import java.util.Iterator; import java.util.Map; import java.util.Map.Entry; import j

Java删除ArrayList中的重复元素的2种方法

ArrayList是Java中最常用的集合类型之一.它允许灵活添加多个null元素,重复的元素,并保持元素的插入顺序.在编码时我们经常会遇 到那种必须从已建成的ArrayList中删除重复元素的要求.这篇文章将给出两种从ArrayList中删除重复元素的方法. 方法1:使用HashSet删除ArrayList中重复的元素 在该方法中,我们使用HashSet来删除重复的元素.如你所知,HashSet不允许有重复的元素.我们使用HashSet的这个属性来删除已建 成的ArrayList中的重复元素.

2种Java删除ArrayList中的重复元素的方法_java

这篇文章将给出两种从ArrayList中删除重复元素的方法,分别是使用HashSet和LinkedHashSet. ArrayList是Java中最常用的集合类型之一.它允许灵活添加多个null元素,重复的元素,并保持元素的插入顺序.在编码时我们经常会遇到那种必须从已建成的ArrayList中删除重复元素的要求. 方法1:使用HashSet删除ArrayList中重复的元素 在该方法中,我们使用HashSet来删除重复的元素.如你所知,HashSet不允许有重复的元素.我们使用HashSet的这

sql 删除数据库中的重复记录方法

删除数据库中的重复记录(且仅保留一条有效记录)示例-  代码如下 复制代码 create table A ( userID int identity(1,1), userName varchar(20), userPwd varchar(20), userEmail varchar(50) ) insert into A(userName,userpwd) select 'qin','qin' union all select 'qin','qin1' union all select 'qin

[华为机试练习题]24.删除链表中的重复节点、剩余节点逆序输出

题目 描述: 题目描述: 输入一个不带头节点的单向链表(链表的节点数小于100),删除链表中内容重复的节点(重复的节点全部删除),剩余的节点逆序倒排. 要求实现函数: void vChanProcess(strNode * pstrIn,strNode * pstrOut); [输入] pstrIn:输入一个不带头节点的单向链表 [输出] pstrOut:删除内容重复的节点(重复的节点全部删除),剩余节点逆序输出(不带头节点,链表第一个节点的内存已经申请). [注意]只需要完成该函数功能算法,中

Oracle 查询与删除表中的重复记录sql语句

方法:  代码如下 复制代码 group by  XX having count(*)>1,rowid,distinct,temporary table,procedure 下面语句可以查询出那些数据是重复的:  代码如下 复制代码 select 字段1,字段2,count(*) from 表名 group by 字段1,字段2 having count(*) > 1 将上面的>号改为=号就可以查询出没有重复的数据了. 想要删除这些重复的数据,可以使用下面语句进行删除  代码如下 复制代

怎么删除Excel2003中的重复行与重复数据

怎么删除Excel2003中的重复行与重复数据   删除重复行 1.将光标定位到表格内,数据-筛选-高级筛选. 2.设置筛选结果放置的位置,并选择不重复的记录. 3.此时筛选结果中已经删除了重复行,效果如下. 删除重复数据 1.在表格旁的F1单元格中输入1,并按回车键. 2.选择以序列方式对F列进行自动填充. 3.选择"科目",单击"数据"菜单中的"排序".

怎样删除表中的重复数据,谢谢大家

问题描述 怎样删除表中的重复数据,谢谢大家 表内容如下: id fwbm kjbh sfxm dj yl ....................... 52578 d01142 d011422015928 001 .400 0 54.70 54.70 0 0 2015-09-28 00:00:00.000 NULL 52579 d01142 d011422015928 040 2.990 2 5.98 5.98 0 0 2015-09-28 00:00:00.000 NULL 52580 d0