hashmap遍历

垂直遍历二叉树(java版)

牧云@^-^@ 提交于 2019-11-29 16:25:53
看到有的博客用使用C++写的,但是没有java版本的,所以在这里做一个补充。 import baseclass.TreeNode; import javafx.util.Pair; import java.util.*; /** * 垂直遍历二叉树 */ public class straightTree { public static void main(String[] args){ //这里的TreeNode是自己定义的一个树节点的类 TreeNode head = new TreeNode(1); TreeNode node1 = new TreeNode(2); // TreeNode node2 = new TreeNode(3); head.left = node1; // head.right = node2; //queue用于存放相同“数值”(后面会将是什么东西)和TreeNode,就是平时的层次遍历 Queue<Pair<Integer,TreeNode>> queue = new LinkedList<>();     //set用来顺序存放“数值”,方便后面的遍历 Set<Integer> set = new TreeSet<>();     //key是“数值”,value是TreeNode Pair pair = new Pair(0,head);

Java.util.Map

折月煮酒 提交于 2019-11-29 09:59:06
概述 特点: 1.双列集合 2.Key不重复,value可重复 3.Key,value数据类型可以相同,也可以不同 4.Key和value一一对应 常用方法 V put(Object key) 返回值是该key值之前对应的value值。 V remove(Object key) 返回值是该key值之前对应的value值。(使用包装类接收,int不能接受null值)。 V get(Object key) 根据指定键,在map集合中找对应的值。 Boolean containsKey(Object key) 判断集合中是否包含指定的键。 Keyset() entrySet() 遍历 通过键找值的方式遍历map集合。 keySet()将map集合中所有的key取出放入set集合。 通过增强for循环或迭代器遍历set集合。来获取Map集合中的每一个key。 使用get(key)获取value。 使用Map方法entrySet()将map集合中多个Entry对象取出来,存储到一个set集合。 遍历set集合,获取每一个Entry对象 使用Entry对象中的方法getKey(),getValue()获取键与值。 System.out.println("keySet方法迭代器遍历:"); Set<Character> set=map.keySet(); // 迭代器遍历 Iterator

map集合的遍历方式

限于喜欢 提交于 2019-11-29 06:33:12
//创建一个mapMap<String, String> map = new HashMap<>(); map.put("1","手机"); map.put("2","电话"); map.put("3","电脑"); map.put("4","电视"); 第一种:通过map的keySet()方法获得key的set集合,使用增强for循环遍历输出 //1、使用map的keySet方法获取key的集合Set<String> keySet = map.keySet();//2、使用增强for循环遍历出每个key for (String key : keySet) {  //2.1通过get方法传入key获取value String value = map.get(key); System.out.println(key + "值对应的value = " + value); } 第二种:通过entrySet()获取键和值的集合,使用迭代器遍历输出 Set<Map.Entry<String, String>> entitySet = map.entrySet();//获取迭代器 Iterator<Map.Entry<String, String>> iterator = entries.iterator();//迭代器判断是否有下一个元素 while (iterator.hasNext())

collection集合--Map

こ雲淡風輕ζ 提交于 2019-11-29 01:56:56
Map (键值对、键唯一、值不唯一) 核心:  Map集合中存储的是键值对,键不能重复,值可以重复。根据键得到值,对map集合遍历时先得到键的set集合,对set集合进行遍历,得到相应的值。 l Collection中的集合,元素是孤立存在的(理解为单身),向集合中存储元素采用一个个元素的方式存储。 l Map中的集合,元素是成对存在的(理解为夫妻)。每个元素由键与值两部分组成,通过键可以找对所对应的值。 l Collection中的集合称为单列集合,Map中的集合称为双列集合。 l 需要注意: Map中的集合不能包含重复的键,值可以重复;每个键只能对应一个值。 . Map集合中包含HashMap(怎么存不一定怎么取)和LinkHahMap(怎么存就怎么取) HashMap 数组方式存储key/value, 线程非安全 , 允许null作为key和value ,key不可以重复,value允许重复,不保证元素迭代顺序是按照插入时的顺序,key的hash值是先计算key的hashcode值,然后再进行计算,每次容量扩容会重新计算所以key的hash值,会消耗资源,要求key必须重写equals和hashcode方法 .HashMap<K,V>(泛型:键,值):存取数据才有的哈希表结果,元素怎么存不一定怎么取,由于要保证键的唯一不重复,需要重写键的hashcode()和equals(

java集合(list,set,map)

此生再无相见时 提交于 2019-11-29 01:54:07
java集合(list,set,map) 集合 集合与数组 数组 (可以存储基本数据类型)是用来存现对象的一种容器,但是数组的长度固定,不适合在对象数量未知的情况下使用。 集合 (只能存储对象,对象类型可以不一样)的长度可变,可在多数情况下使用。 注:数组我在前面的博客讲了大家可以看下 集合中接口和类的关系 Collection 接口是集合类的根接口,Java中没有提供这个接口的直接的实现类。但是却让其被继承产生了两个接口,就是Set和List。Set中不能包含重复的元素。List是一个有序的集合,可以包含重复的元素,提供了按索引访问的方式。 Map 是Java.util包中的另一个接口,它和Collection接口没有关系,是相互独立的,但是都属于集合类的一部分。Map包含了key-value对。Map不能包含重复的key,但是可以包含相同的value。 Iterator 所有的集合类,都实现了Iterator接口,这是一个用于遍历集合中元素的接口,主要包含以下三种方法: 1. hasNext() 是否还有下一个元素。 2. next() 返回下一个元素。 3. remove() 删除当前元素。 层次图 图一这个比较简单 图二完整 list,set,map对比 接口 子接口 是否有序 是否允许元素重复 Collection            否   List   

HashMap在遍历的过程中修改(remove操作)

主宰稳场 提交于 2019-11-28 13:52:28
1.如下的方式删除键值对不会抛出异常 1 Iterator modifyIter = finalResult.entrySet().iterator(); 2 while(modifyIter.hasNext()){ 3 Map.Entry modifyEntry = (Map.Entry)modifyIter.next(); 4 int keyOut =(int) modifyEntry.getKey(); 5 HashMap<Integer,ArrayList<Mac>> value = (HashMap<Integer,ArrayList<Mac>>) modifyEntry.getValue(); 6 Iterator innerIter = value.entrySet().iterator(); 7 while(innerIter.hasNext()){ 8 Map.Entry innerEntry = (Map.Entry) innerIter.next(); 9 int keyIn = (int) innerEntry.getKey(); 10 ArrayList<Mac> macList = (ArrayList<Mac>) innerEntry.getValue(); 11 if(macList.size()<groupSize){ 12 innerIter

集合使用的总结

心已入冬 提交于 2019-11-28 11:54:59
  集合在程序设计中有着举足轻重的地位,集合的操作无非就是增删遍历等基本的动作,所以就以上基本操作,本文结合案例及代码分别加以说明。   首先,集合从大的方向来分,分为单列集合(Collection)和双列集合(Map)。简单地说,就是Collection中存储的是单一的内容,而Map集合中存储的是键和值,就像看到的表格,Collection只有一列,所以叫单列集合,而Map有两列,Map的一个元素分为两部分,一列存键,一列存值,并且键唯一不能重复。   下来,先看看Collection集合。   Collection       |---List  元素不唯一,存储和了取出顺序一致。           |---ArrayList 底层数据结构是数组。特点:查询快,增删慢,线程不安全,高效。           |---Vector   底层数据结构是数组。特点:线程安全,效率不如ArrayList,被ArrayList取代。           |---LinkedList  底层数据结构是链接列表。特点:增删快,查询慢。线程不安全,高效。       |---Set  元素唯一,但存储和取出顺序不一致。           |---HashSet  底层数据结构是哈希表。特点:依赖于哈希表。                 |---LinkedHashSet 

map的一种遍历方式

空扰寡人 提交于 2019-11-27 15:43:51
keySet是键的集合,Set里面的类型即key的类型 entrySet是 键-值 对的集合,Set里面的类型是Map.Entry 1.keySet() Map map=new HashMap(); Iterator it=map.keySet().iterator(); Object key; Object value; while(it.hasNext()){ key=it.next(); value=map.get(key); System.out.println(key+":"+value); } 2.entrySet() Map map=new HashMap(); Iterator it=map.entrySet().iterator(); Object key; Object value; while(it.hasNext()){ Map.Entry entry = (Map.Entry)it.next(); key=entry.getKey(); value=entry.getValue(); System.out.println(key+"="+value); } HashMap<String,String> map = new HashMap<String,String>(); Iterator<Entry<String, String>> it = map

Java 集合

白昼怎懂夜的黑 提交于 2019-11-27 12:50:29
目录 Java 集合 1. Collection集合(单列集合) 集合概述 集合的架构 Collection常用的方法 Iterator 2. 增强for(for each) 3. 泛型(Generic) 泛型概念 使用泛型的好处 定义含有泛型的类 定义含有泛型的方法 定义含有泛型的接口 泛型的通配符 通配符的高级使用—泛型受限 4. 综合案例:斗地主(单列集合) 5. List集合 List接口的特点: List接口中带索引的方法(特有): 6. List的实现类 1. ArrayList集合 2. LinkList集合 3. Vector集合 7. Set集合 哈希值 HashSet存储数据的结构(哈希表) Set集合存储不重复元素的原理 HashSet存储自定义类型的元素 LinkedHashSet集合 可变参数 8. Collections工具类 9. Map集合(双列集合) 概述 Map常用子类 Map接口中的常用方法 HashMap存储自定义类型键值 LinkedHashMap集合 Hashtable集合 练习 JDK9对集合添加的优化 10. 综合案例:斗地主(双列集合) Java 集合 1. Collection集合(单列集合) 集合概述 集合:集合是Java提供的一种容器,可以用来存储多个数据。 数组的长度是固定的,而集合的长度是可变的。

【Java 学习笔记】Map

為{幸葍}努か 提交于 2019-11-27 03:33:51
【Map】 主要内容 Map集合 第一章 Map集合 1.1 概述 现实生活中,我们常会看到这样的一种集合:IP地址与主机名,身份证号与个人,系统用户名与系统用户对象等,这种一一对应的关系,就叫做映射。Java提供了专门的集合类用来存放这种对象关系的对象,即 java.util.Map 接口。 我们通过查看 Map 接口描述,发现 Map 接口下的集合与 Collection 接口下的集合,它们存储数据的形式不同,如下图。 Collection 中的集合,元素是孤立存在的(理解为单身),向集合中存储元素采用一个个元素的方式存储。 Map 中的集合,元素是成对存在的(理解为夫妻)。每个元素由键与值两部分组成,通过键可以找对所对应的值。 Collection 中的集合称为 单列集合 , Map 中的集合称为 双列集合 。 需要注意的是, Map 中的集合不能包含重复的键,值可以重复;每个键只能对应一个值。 Map集合的特点: Map集合是一个双列集合,一个元素包含两个值(一个key,一个value) Map集合中的元素,key和value的数据类型可以相同,也可以不同 Map集合中的元素,key是不允许重复的,value是可以重复的 Map集合中的元素,key和value是一一对应 1.2 Map常用子类 通过查看Map接口描述,看到Map有多个子类