hashmap遍历

Android 知识点总结 持续更新

匿名 (未验证) 提交于 2019-12-03 00:38:01
Javaƪ 1、ArrayList和LinkedList区别 相同点:1、都实现List 类型 内部结构 顺序遍历速度 随机遍历速度 追加代价 插入代价 删除代价 占用内存 ArrayList 数组 高 高 中 高 高 低 LinkedList 双向链表 高 低 低 低 低 2、ArrayLis和Vector区别 相同点:1、都实现List 不同点:1、ArrayList线程不安全的,Vector线程安全,单线程中ArrayList性能更好 3、fori 与foreach性能比较 100条数据 foreach 遍历ArrayList花费时间0 foreach 遍历LinkedList花费时间0 1000条数据 foreach 遍历ArrayList花费时间5 foreach 遍历LinkedList花费时间6 10000条数据 foreach 遍历ArrayList花费时间3 foreach 遍历LinkedList花费时间105 100000条数据 foreach 遍历ArrayList花费时间13 foreach 遍历LinkedList花费时间11107 200000条数据 foreach 遍历ArrayList花费时间29 foreach 遍历LinkedList花费时间80035 1000000条数据 foreach 遍历ArrayList花费时间143 foreach

ArrayList嵌套HashMap

匿名 (未验证) 提交于 2019-12-03 00:18:01
ArrayList嵌套HashMap,并遍历ArrayList /* /* ArrayList集合嵌套HashMap集合并遍历。 需求: 假设ArrayList集合的元素是HashMap。有3个。 每一个HashMap集合的键和值都是字符串。 元素我已经完成,请遍历。 结果: 周瑜---小乔 吕布---貂蝉 郭靖---黄蓉 杨过---小龙女 令狐冲---任盈盈 林平之---岳灵珊 */ package cn.itcast_02; import java.util.ArrayList; import java.util.HashMap; import java.util.Set; public class ArrayListIncludeHashMapDemo { public static void main(String[] args) { // 创建集合对象 ArrayList<HashMap<String, String>> array = new ArrayList<HashMap<String, String>>(); // 创建元素1 HashMap<String, String> hm1 = new HashMap<String, String>(); hm1.put("周瑜", "小乔"); hm1.put("吕布", "貂蝉"); //

HashMap嵌套ArrayList

匿名 (未验证) 提交于 2019-12-03 00:18:01
HashMap嵌套ArrayList,并遍历HashMap /* /* *需求: *假设HashMap集合的元素是ArrayList。有3个。 *每一个ArrayList集合的值是字符串。 *元素我已经完成,请遍历。 *结果: * 三国演义 * 吕布 * 周瑜 * 笑傲江湖 * 令狐冲 * 林平之 * 神雕侠侣 * 郭靖 * 杨过 */ package cn.itcast_02; import java.util.ArrayList; import java.util.HashMap; import java.util.Set; public class HashMapIncludeArrayListDemo { public static void main(String[] args) { // 创建集合对象 HashMap<String, ArrayList<String>> hm = new HashMap<String, ArrayList<String>>(); // 创建元素集合1 ArrayList<String> array1 = new ArrayList<String>(); array1.add("吕布"); array1.add("周瑜"); hm.put("三国演义", array1); // 创建元素集合2 ArrayList<String>

Map集合遍历的5种方式

匿名 (未验证) 提交于 2019-12-02 23:57:01
Map < Integer , Integer > map = new HashMap < Integer , Integer > ( ) ; 1. keyset values for ( Integer key : map . keySet ( ) ) { System . out . println ( key ) ; } for ( Integer value : map . values ( ) ) { System . out . println ( value ) ; } 2. KeySet get ( key ) for ( Integer key : map . keySet ( ) ) { System . out . println ( key + "" + map . get ( key ) ) } 3. entrySet for ( Map . Entry < Integer , Integer > entry : map entrySet ( ) ) { System . out . println ( entry . getKey ( ) + ":" + entry . getValue ( ) ) ; } 4. Iterator Iterator < Map . Entry < Integer , Integer > > it = map .

HashMap,HashTable,LinkedHashMap,TreeMap的面试题

匿名 (未验证) 提交于 2019-12-02 23:55:01
二 ,hashTable继承自Dictionary类,不允许记录的键和值为空,支持线程的同步,即任意时刻只有一个线程能写Hashtable,因此也导致了Hashtable 在写入时会比较慢 三 ,LinkedHashMap是HashMap的子类,保存了记录的插入顺序,遍历时,先得到数据肯定是先插入的,遍历的速度比HashMap慢,但当HashMap容量很大,实际数据较少时,遍历起来可能会比LinkedHashMap慢,因为LinkedHashMap的遍历速度只和实际数据有关,和容量无关,而HashMap的遍历速度和他的容量有关 四 ,TreeMap实现SortMap接口,能够把保存的记录按照键排序,默认是升序,所以遍历TreeMap时,得到的数据时排过序的 五、HashMap,TreeMap,LinkedHashMap三者使用场景 以及他们的相同点和不同点 1,相同点: HashMap,LinkedHashMap,TreeMap都属于集合Map接口的子类。都是键值对集合。线程都不安全,效率高。 2,不同点: (1)HashMap键是哈希表结构,可以保证键的唯一性,key能null,值也可为null。 (2)LinkedHashMap是HashMap的子类,内部依赖哈希表和链表列实现。由hash保证键的唯一性,由LinkedList保证有序性(存取顺序一致)。key能为Null

遍历list集合泛型为map

匿名 (未验证) 提交于 2019-12-02 23:49:02
public class ListAddMap { public static void main( String args[] ) { List<Map<String, Object>> list = new ArrayList<Map<String, Object>>(); Map<String, Object> map = new HashMap<String, Object>(); Student stu1 = new Student( "\u5f20\u4e09", 26, 180 ); Student stu2 = new Student( "\u674e\u56db", 28, 175 ); map.put( "stu1", stu1 ); map.put( "stu2", stu2 ); list.add( map ); System.out.println( "方法一 :" ); for( int i = 0; i < list.size(); i++ ) { System.out.println( list.get(i) ); } System.out.println( "方法二 :" ); for( Map<String, Object> mapList : list ) { for( String key : mapList.keySet() ) {

深入理解HashMap和CurrentHashMap

懵懂的女人 提交于 2019-12-02 09:30:11
原文链接: https://segmentfault.com/a/1190000015726870 前言 Map 这样的 Key Value 在软件开发中是非常经典的结构,常用于在内存中存放数据。 本篇主要想讨论 ConcurrentHashMap 这样一个并发容器,在正式开始之前我觉得有必要谈谈 HashMap,没有它就不会有后面的 ConcurrentHashMap。 HashMap 众所周知 HashMap 底层是基于 数组 + 链表 组成的,不过在 jdk1.7 和 1.8 中具体实现稍有不同。 Base 1.7 1.7 中的数据结构图: 先来看看 1.7 中的实现。 这是 HashMap 中比较核心的几个成员变量;看看分别是什么意思? 初始化桶大小,因为底层是数组,所以这是数组默认的大小。 桶最大值。 默认的负载因子(0.75) table 真正存放数据的数组。 Map 存放数量的大小。 桶大小,可在初始化时显式指定。 负载因子,可在初始化时显式指定。 重点解释下负载因子: 由于给定的 HashMap 的容量大小是固定的,比如默认初始化: 1 public HashMap() { 2 this(DEFAULT_INITIAL_CAPACITY, DEFAULT_LOAD_FACTOR); 3 } 4 5 public HashMap(int initialCapacity

JavaSE笔记-集合

偶尔善良 提交于 2019-12-01 18:31:08
Java集合大致可分为:List,Set,Map,Queue List:有序,可重复 Set:无序(输出和插入顺序不一定一致),不可重复 Map:映射关系,根据key去访问value Queue:队列,先进先出(FIFO) 集合类只能存储对象 List< int > // 错误 List<Integer> Collection体系结构 圆圈表示:interface 长方形表示:class 带三角的实线代表继承关系,使用关键字extends 带三角的虚线代表实现关系,使用关键字implements Iterable iterable定义了iterator(),forEach(Consumer<? super T> action) 这2个方法用于 遍历元素 1.forEach方法遍历集合 Consumer是一个函数式接口,只有一个accept(T t)方法,可以使用Lambda表达式 public static void main(String[] args){ Collection <String> coll = new HashSet<> (); // 在集合中添加10个元素 for ( int i=0;i<10;i++ ){ coll.add( "小王"+ i); } // 使用forEach遍历集合 coll.forEach(name-> System.out.println

LeetCode 1:两数之和 Two Sum

僤鯓⒐⒋嵵緔 提交于 2019-12-01 13:15:09
题目: 给定一个整数数组 nums 和一个目标值 target ,请你在该数组中找出和为目标值的那 两个 整数,并返回他们的数组下标。 你可以假设每种输入只会对应一个答案。但是,你不能重复利用这个数组中同样的元素。 Given an array of integers, return indices of the two numbers such that they add up to a specific target. You may assume that each input would have exactly one solution, and you may not use the same element twice. 示例: 给定 nums = [2, 7, 11, 15], target = 9 因为 nums[0] + nums[1] = 2 + 7 = 9 所以返回 [0, 1] 解题思路: 暴力穷举:外循环遍历每个元素 x ,内循环查找是否存在一个值与 target - x 相等的目标元素,返回相等的目标元素和 x 的索引。时间复杂度 O (n^2),效率太低,pass。 哈希表:哈希映射(map、dict),key 保存该元素,value 保存该元素索引。 两次遍历法:第一次遍历把所有元素及其索引保存到哈希映射,第二次遍历查找 target - x

Java HashMap 和 ConcurrentHashMap

被刻印的时光 ゝ 提交于 2019-12-01 10:21:00
转自: http://www.codeceo.com/article/java-hashmap-concurrenthashmap.html 前言 Map 这样的 Key Value 在软件开发中是非常经典的结构,常用于在内存中存放数据。 本篇主要想讨论 ConcurrentHashMap 这样一个并发容器,在正式开始之前我觉得有必要谈谈 HashMap,没有它就不会有后面的 ConcurrentHashMap。 HashMap 众所周知 HashMap 底层是基于 数组 + 链表 组成的,不过在 jdk1.7 和 1.8 中具体实现稍有不同。 Base 1.7 1.7 中的数据结构图: 先来看看 1.7 中的实现。 这是 HashMap 中比较核心的几个成员变量;看看分别是什么意思? 初始化桶大小,因为底层是数组,所以这是数组默认的大小。 桶最大值。 默认的负载因子(0.75) table 真正存放数据的数组。 Map 存放数量的大小。 桶大小,可在初始化时显式指定。 负载因子,可在初始化时显式指定。 重点解释下负载因子: 由于给定的 HashMap 的容量大小是固定的,比如默认初始化: public HashMap() { this(DEFAULT_INITIAL_CAPACITY, DEFAULT_LOAD_FACTOR); } public HashMap(int