`
jxqiujian2008
  • 浏览: 12216 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
文章分类
社区版块
存档分类
最新评论

利用HashMap和ArrayLis合并t去除重复数据

 
阅读更多

import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

public class Test {

/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
System.out.println("打印信息xxxxxxxxxxxxxxxxxx");
List list = new ArrayList();
  Map map1 = new HashMap<String,String>();
  map1.put("id", "001");
  map1.put("name", "张三");
  Map map2 = new HashMap<String,String>();
  map2.put("id", "001");
  map2.put("name", "李四");
  Map map3 = new HashMap<String,String>();
  map3.put("id", "002");
  map3.put("name", "王二");
  Map map4 = new HashMap<String,String>();
  map4.put("id", "003");
  map4.put("name", "赵五");
  Map map5 = new HashMap<String,String>();
  map5.put("id", "004");
  map5.put("name", "陈六");
  list.add(map1);
  list.add(map2);
  list.add(map3);
  list.add(map4);
  list.add(map5);
 
  for (int i = 0; i < list.size(); i++) {
   Map map = (Map) list.get(i);
   System.out.println(map.get("name"));
  }
 
  System.out.println("----------------------------");
 
//   int count = getList(list);
  getList(list);
 
  for (int i = 0; i < list.size(); i++) {
   Map map = (Map) list.get(i);
   System.out.println(map.get("name"));
  }
}

public static void getList(List src){
 
  List list1 = new ArrayList();
  List list2 = new ArrayList();
  int oldSize = src.size();
  for (int i = 0; i < src.size(); i++) {
   Map map = (Map) src.get(i);
   String id = (String) map.get("id");
   if(!list1.contains(id)){
    list1.add(id);
   }else{
    src.remove(i);
    list2.add(map);
   }
  }
 
  for (int i = 0; i < src.size(); i++) {
   Map map = (Map) src.get(i);
   String id = (String) map.get("id");
   String name = (String) map.get("name");
   for (int j = 0; j < list2.size(); j++) {
    String id1 = (String) ((Map)list2.get(j)).get("id");
    String name1 = (String) ((Map)list2.get(j)).get("name");
    if(id.equals(id1)){
     map.put("name", name+","+name1);
    }
   }
  }
 
//   return oldSize - src.size();
 
}


}
分享到:
评论

相关推荐

    HashMap和HashTable的区别和不同

    ### HashMap与HashTable的区别详解 #### 引言 在Java编程中,`HashMap`与`HashTable`作为两种常用的数据结构,...- 在大多数现代Java应用程序中,由于`HashMap`提供了更好的性能和灵活性,它成为了首选的数据结构。

    HashMap的数据结构

    HashMap在内部实现上基于哈希表,也称为散列表,它提供了一种快速查找、插入和删除数据的方法,平均时间复杂度为O(1)。 HashMap的工作原理基于哈希函数,它将键(Key)转化为一个哈希码(Hash Code),这个哈希码...

    html js 用HashMap去掉html中select中的重复值

    本文将探讨如何利用JavaScript和Java中的HashMap(在JavaScript中,我们可以使用类似的数据结构,如`Map`)来消除`&lt;select&gt;`中的重复值。 首先,让我们了解HashMap或Map数据结构。HashMap是Java中的一种集合类,它...

    比较分析Vector、ArrayList和hashtable hashmap数据结构

    比较分析Vector、ArrayList和hashtable hashmap数据结构

    hashMap和hashTable的区别

    `HashMap` 和 `HashTable` 都是 Java 集合框架中非常重要的数据结构,它们都实现了 `Map` 接口,用于存储键值对。尽管它们在功能上有很多相似之处,但在实现细节和性能特性上存在显著差异。 #### 二、主要区别 1. ...

    HashMap介绍和使用

    ### HashMap介绍和使用详解 #### 一、HashMap的数据结构 HashMap是Java集合框架的一个重要组成部分,它实现了Map接口,能够存储键值对映射。在Java编程语言中,最基本的数据结构有两种:数组和引用(模拟指针)。...

    经典讲解List和ArrayList和Vector和HashTable和HashMap区别

    在Java编程语言中,集合框架是处理对象数组的重要工具,其中`List`、`ArrayList`、`Vector`、`HashTable`和`HashMap`是五个关键的接口和类,它们各有不同的特性和用途。以下是这些概念的详细解释: 1. **List接口**...

    HashMap与HashTable和HashSet的区别

    在Java集合框架中,`HashMap`, `HashTable` 和 `HashSet` 是三个重要的数据结构,它们分别实现了`Map`接口和`Set`接口,提供了不同的功能来满足不同的编程需求。本文将重点分析这三种数据结构之间的区别,特别是针对...

    Java集合专题总结:HashMap 和 HashTable 源码学习和面试总结

    Map接口用于保存具有key-value映射关系的数据,常见的Map实现包括HashMap、TreeMap、HashTable和LinkedHashMap等。Queue是Java提供的队列实现。 本文总结了HashMap和HashTable的源码学习和面试总结,涵盖了它们的...

    hashmap 集合

    CacheManager.java文件可能是一个用于管理缓存的类,它可能利用HashMap或其他数据结构来存储和检索缓存项。在设计这类缓存管理系统时,需要考虑以下几点: 1. 缓存淘汰策略:当缓存容量有限时,需要决定何时以及...

    HashMap新增数据原理.docx

    - 如果现有节点p的哈希值、键都与新数据完全匹配(即`p.hash == hash && (k = p.key) == key || key.equals(k)`),那么HashMap会认为这是重复添加,通常会忽略新数据。 - 如果节点p是TreeNode(表示链表已转换为...

    Hashtable和HashMap区别

    在Java编程语言中,`Hashtable`和`HashMap`是两种非常重要的数据结构,它们都属于`Map`接口的实现类,用于存储键值对数据。尽管两者在功能上相似,但在实际应用中却存在显著差异。 #### 1. 历史与实现基础 `...

    HASHMAP缓存.txt

    在缓存场景下,HashMap可以快速地存储和检索数据,减少对数据库或其他数据源的频繁访问,从而提高应用程序的性能。 #### 实现细节 文档中的代码示例展示了一种使用HashMap作为缓存的常见模式:单例模式下的缓存...

    hashmap面试题_hashmap_

    《HashMap面试题详解》 HashMap作为Java集合框架中的重要成员,是面试中常见的知识点,尤其在数据结构与算法、并发编程以及JVM内存管理等领域...深入理解HashMap,有助于我们更好地利用数据结构,提高代码的执行效率。

    javaScript模拟的HashMap数据结构的对象

    javaScript模拟的HashMap数据结构,可以方便的put和get。几乎和Java中HashMap类的功能一模一样。非常好用的!

    Hashtable和HashMap的区别:

    在Java编程语言中,`Hashtable` 和 `HashMap` 都是用来存储键值对的数据结构。这两种数据结构虽然相似,但是在实现细节上存在显著差异。 1. **Hashtable**:作为 `Dictionary` 类的子类,`Hashtable` 是 Java 最早...

    HashMap的一个数据结构

    HashMap的一个数据结构 锁升级:锁升级过程 resize的过程在开发中 怎么保证容器它线程安全后就是数据插入过程使用的头插法 但是头插法会造成一些问题等等等等的那个等等的那个等等的那个等等的那个等等的那个等等的...

    HashMap模块源码—— 高效随机存取数据结构 ,文本索引必备

    1、此HashMap类采用java jdk中HashMap的实现方式。2、相比网站上发布过的hashtable之类的源码:。此HashMap寻址方法是拉链法.比开放寻址法对连续内存要求更低。哈希函数用的是java中String.hashCode()算法(经实际验证...

    HashMap总结

    2. 键不能重复:如果尝试将重复的键添加到 HashMap 中,后添加的键将覆盖之前的键,最后一次添加的键的值将被保留。 3. 键可以是对象类型:HashMap 中的键可以是对象类型的,可以是基本类型,也可以是引用类型。 值...

    HashMap存放.doc

    HashMap存放.doc

Global site tag (gtag.js) - Google Analytics