从 一个list 里从list 移除数据相同数据

Java中Set巧用,去掉重复数据 - Only the heart peace will be prosperity - ITeye技术网站
博客分类:
java中Set有这样一个方法,.addAll( Collection c),直接加入List集合,去掉重复的数据。
public static void main(String[] args) {
set=new HashSet();
set.add("abc");
set.add("cde");
set.add("efg");
set.add("fgh");
set.add("abc"); //重复的abc,set会自动将其去掉
System.out.println("size="+ set.size() );
List list = new ArrayList();
list.add("abc");
list.add("aaa");
list.add("fff");
set.addAll(list); //将list中的值加入set,并去掉重复的abc
System.out.println("size="+ set.size() );
for( Iterator
it = set.iterator();
it.hasNext(); )
System.out.println("value="+it.next().toString());
浏览 22447
浏览: 1300505 次
来自: 哈尔滨
今天也跟着学习了,用到了
讲解的很不错。URLConnection类的内容也可以看这篇文 ...List&Map&去重复数据
该问题被发起重新开启投票
投票剩余时间:
之前被关闭原因:
该问题被发起删除投票
投票剩余时间:
距离悬赏到期还有:
参与关闭投票者:
关闭原因:
该问题已经被锁定
锁定原因:()
保护原因:避免来自新用户不合宜或无意义的致谢、跟帖答案。
该问题已成功删除,仅对您可见,其他人不能够查看。
import java.util.ArrayLimport java.util.HashMimport java.util.Limport java.util.Mimport java.util.S/** * @author Dengyouchao * @date 下午4:03:27 * @Copyright(c) UCIT */public class RemoveDuplicatesData {
@SuppressWarnings({"rawtypes", "unchecked"})
public static void main(String[] args) {
// TODO Auto-generated method stub
Map&String, Map& msp = new HashMap&String, Map&();
List&Map&String, Object&& list = new ArrayList&Map&String, Object&&();
List&Map&String, Object&& listMap = new ArrayList&Map&String,Object&&();
Map&String, Object& map1 = new HashMap&String, Object&();
map1.put("id", "1");
map1.put("name", "p");
Map&String, Object& map2 = new HashMap&String, Object&();
map2.put("id", "3");
map2.put("name", "h");
Map&String, Object& map3 = new HashMap&String, Object&();
map3.put("id", "3");
map3.put("name", "f");
list.add(map1);
list.add(map3);
list.add(map2);
System.out.println("初始数据:" + list.toString());
//把list中的数据转换成msp,去掉同一id值多余数据,保留查找到第一个id值对应的数据
for(int i = list.size()-1 ; i&=0; i--){
Map map = list.get(i);
String id = (String)map.get("id");
map.remove("id");
msp.put(id, map);
//把msp再转换成list,就会得到根据某一字段去掉重复的数据的List&Map&
Set&String& mspKey = msp.keySet();
for(String key: mspKey){
Map newMap = msp.get(key);
newMap.put("id", key);
listMap.add(newMap);
System.out.println("去掉重复数据后的数据:" + listMap.toString());
private &K, V& void cleanListByMapKey(List&Map&K,V&& list, K toBeRemoved) {
List&Map&K,V&& tmpList=new ArrayList&&();
for(Map&K,V& m: list){
if(m.containsKey(toBeRemoved))
tmpList.add(m);
list.removeAll(tmpList);}
@Testpublic void testCleanListByMapKey(){
List&Map&String,String&& list=new ArrayList&&();
for(int i=0;i&10;i++){
Map&String, String& m=new HashMap&&();
m.put("key"+i, "value"+i);
list.add(m);
Map&String, String& m=new HashMap&&();
m.put("key100", "value100");
list.add(m);
System.out.println(list.contains(m));
cleanListByMapKey(list, "key100");
System.out.println(list.contains(m));}
德问是一个专业的编程问答社区,请
后再提交答案
关注该问题的人
共被浏览 (9444) 次去除List集合中的某几个属性相同的重复对象并对某个属性进行计数、排序 -
- ITeye技术网站
博客分类:
import java.util.*;
该示例为把集合中把同一箱子(箱号和名字相同即认定为同一箱子)根据型号的进行统计输出
要求处理成的结果:
20箱型数量
40箱型数量
public class EquComp{
public static void main(String[] args){
List&Box& hs = new ArrayList&Box&();
hs.add(new Box("1","箱1","20"));
hs.add(new Box("3","箱2","40"));
hs.add(new Box("2","箱2","40"));
hs.add(new Box("2","箱2","20"));
hs.add(new Box("2","箱2","40"));
hs.add(new Box("2","箱2","40"));
List&Box& newStats = new EquComp().getBox(hs);
System.out.println("箱号--------名字--------20箱型数量--------40箱型数量");
for(Box s:newStats){
System.out.println(s.getBoxNo()+"------------"+ s.getBoxName()+"------------"+s.getCount20()+"----------------"+ s.getCount40());
public List&Box& getBox(List&Box& hs){
List&Box& boxList = new ArrayList&Box&();
boolean flag =
String boxType = "";
for (Box sta : hs) {
boxType = sta.getBoxType();
for (Box n : boxList) {
if (n.equals(sta)) {
if ("20".equals(boxType)) {
n.setCount20(n.getCount20()+1);
} else if ("40".equals(boxType)) {
n.setCount40(n.getCount40()+1);
if (!flag) {
if ("20".equals(boxType)) {
sta.setCount20(1);
} else if ("40".equals(boxType)) {
sta.setCount40(1);
boxList.add(sta);
//通过程序进行排序
Collections.sort(boxList,new ComparableYS());
return boxL
class ComparableYS implements Comparator{
public int compare(Object o1, Object o2){
Box s1 = (Box)o1;
Box s2 = (Box)o2;
//排序顺序 boxNo,boxName
if(!s1.getBoxNo().equals(s2.getBoxNo())){
return s1.getBoxNo().compareTo(s2.getBoxNo());
}else if(!s1.getBoxName().equals(s2.getBoxName())){
return s1.getBoxName().compareTo(s2.getBoxName());
public boolean equals(Object o){
class Box{
private String boxNo;//箱号
private String boxT
private String boxN//名字
private int count_20;//箱型20数量
private int count_40;//箱型40数量
public void setCount40(int count_40){
this.count_40 = count_40;
public void setCount20(int count_20){
this.count_20 = count_20;
public int getCount20(){
return count_20;
public int getCount40(){
return count_40;
public Box(String boxNo,String boxName,String boxType){
this.boxNo = boxNo;
this.boxName = boxN
this.boxType = boxT
public String getBoxNo() {
return boxNo;
public void setBoxNo(String boxNo) {
this.boxNo = boxNo;
public String getBoxName() {
return boxN
public void setBoxName(String boxName) {
this.boxName = boxN
public String getBoxType() {
return boxT
public void setBoxType(String boxType) {
this.boxType = boxT
//判断是否是同一个箱子
public boolean equals(Object o){
Box s = (Box)o;
return s.getBoxNo().equals(boxNo)&& s.getBoxName().equals(boxName)?true:
注: 本示例是通过程序来控制的,问题:该问题应该可以通过sql语句来进行处理,首先把要统计的列根据某些条件进行列转行后,分组进行计数。
浏览: 69446 次
来自: 济南
caomeiliang 写道1、读入Excel是按文本方式读入 ...
1、读入Excel是按文本方式读入2、导出Excel,按照符合 ...去掉List集合中重复项的方法_百度文库
两大类热门资源免费畅读
续费一年阅读会员,立省24元!
去掉List集合中重复项的方法
上传于||暂无简介
你可能喜欢

我要回帖

更多关于 从list 移除数据 的文章

 

随机推荐