Java实现将容器 Map中的内容保存到数组

我就废话不多说了,大家还是直接看代码吧~

import java.util.Map;
import java.util.HashMap;
import java.util.Map.Entry;
public class mapToArr {

	public static void main(String[] args) {

		Map<String, Integer> map = new HashMap<String, Integer>();
		map.put( "a", 11 );
		map.put( "b", 23 );
		map.put( "c", 68 );
		System.out.println( "map=" + map.toString() );

		int count = 0;
		Integer intArr[] = new Integer[map.size()];

		// 方法一
//		for( String key : map.keySet() ) {
//			intArr[count] = map.get(key);
//			count++;
//		}

		// 方法二
		for( Entry<String, Integer> entry : map.entrySet() ) {
			intArr[count] = entry.getValue();
			count++;
		}

		for( int i = 0; i < intArr.length; i++ ) {
			System.out.print( "intArr[" + i + "]=" + intArr[i] + " " );
		}
	}
}

运行结果为:

补充知识:Java map集合的两种取出方式

map集合的两种取出方式:

1,Set<k> keySet:将map中所有的键存入到Set集合。因为set具备迭代器。

所以可以迭代方式取出所有的键,再根据get方法。获取每一个键对应的值。

Map集合的取出原理:将map集合转成set集合。再通过迭代器取出。

2,Set<Map.Entry<k,v>> entrySet:将map集合中的映射关系存入到了set集合中,

而这个关系的数据类型就是:Map.Entry

Entry其实就是Map中的一个static内部接口。

为什么要定义在内部呢?

因为只有有了Map集合,有了键值对,才会有键值的映射关系。

关系属于Map集合中的一个内部事物。

而且该事物在直接访问Map集合中的元素。

import java.util.*;
class MapDemo2
{
 public static void main(String[] args)
 {
 Map<String,String> map = new HashMap<String,String>();

 map.put("02","zhangsan2");
 map.put("03","zhangsan3");
 map.put("01","zhangsan1");
 map.put("04","zhangsan4");

 //将Map集合中的映射关系取出。存入到Set集合中。
 Set<Map.Entry<String,String>> entrySet = map.entrySet();

 Iterator<Map.Entry<String,String>> it = entrySet.iterator();

 while(it.hasNext())
 {
 Map.Entry<String,String> me = it.next();
 String key = me.getKey();
 String value = me.getValue();

 System.out.println(key+":"+value);
 }

 /*
 //先获取map集合的所有键的Set集合,keySet();
 Set<String> keySet = map.keySet();
 //有了Set集合。就可以获取其迭代器。
 Iterator<String> it = keySet.iterator();
 while(it.hasNext())
 {
 String key = it.next();
 //有了键可以通过map集合的get方法获取其对应的值。
 String value = map.get(key);
 System.out.println("key:"+key+",value:"+value);
 }
 */
 }
} 

/*
Map.Entry 其实Entry也是一个接口,它是Map接口中的一个内部接口。
interface Map
{
 public static interface Entry
 {
 public abstract Object getKey();
 public abstract Object getValue();
 }
}
class HashMap implements Map
{
 class Hahs implements Map.Entry
 {
 public Object getKey(){}
 public Object getValue(){}
 }
}
*/

以上这篇Java实现将容器 Map中的内容保存到数组就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持我们。

(0)

相关推荐

  • Java四种遍历Map的方法

    选择适合的最好 import java.util.HashMap; import java.util.Iterator; import java.util.Map; import java.util.Set; /** * Created by song on 2019/1/17. **/ public class MapT { public static void main(String[] args) { Map<Integer,String> map=new HashMap<>

  • Java map存放数组并取出值代码详解

    获取map的值主要有四种方法,这四种方法又分为两类,一类是调用map.keySet()方法来获取key和value的值,另一类则是通过map.entrySet()方法来取值,两者的区别在于,前者主要是先获取到所有的key的集合,当你需要查询value的值的时候需要通过key来查询value,后者则直接将key和value的键值对直接取出来,只用查询一次,对于那种性能更好,我觉得还是用map.entrySet()更好一点,具体请参见map.keySet()和map.EntrySet()的比较,接下

  • 详解JAVA里面获取map的key和value的方法

    获取map的key和value的方法分为两种形式: map.keySet():先获取map的key,然后根据key获取对应的value: map..entrySet():同时查询map的key和value,只需要查询一次. 同时遍历key和value时,keySet与entrySet方法的性能差异取决于key的具体情况,如复杂度(复杂对象).离散度.冲突率等.换言之,取决于HashMap查找value的开销.entrySet一次性取出所有key和value的操作是有性能开销的,当这个损失小于Ha

  • Java实现将容器 Map中的内容保存到数组

    我就废话不多说了,大家还是直接看代码吧~ import java.util.Map; import java.util.HashMap; import java.util.Map.Entry; public class mapToArr { public static void main(String[] args) { Map<String, Integer> map = new HashMap<String, Integer>(); map.put( "a"

  • Java读写文件,在文件中搜索内容,并输出含有该内容的所有行方式

    1.问题描述 在一个目录及子目录下查找 TXT或Java文件,从中搜索所有"对象"字样的行. 在D盘中的所有文件中搜索含有"对象"的行. 2.解题思路 先找出D盘下所有文件 再对每个文件中的每行内容进行,进行查找,若含有"对象"两字,输出该行. 3.程序代码 import java.io.File; import java.io.IOException; import java.util.Scanner; public class B { sta

  • C++将txt文件内容保存到数组的方法

    代码如下: #include<iostream> #include<fstream> //必要头文件 using namespace std; int main() { int a[9][9]; fstream in("E://C//LQB_04data.txt"); //""中是txt文件路径,注意:路径要用//隔开 cin.rdbuf(in.rdbuf()); //将输入信息从控制台转向txt文件 for(int i=0;i<9;i

  • java实现读取txt文件中的内容

    我们先来看个例子 import java.io.*; /** * Created by liguoqing on 2016/3/28. */ public class ReadTxtFile { public static void readTxt(String filePath) { try { File file = new File(filePath); if(file.isFile() && file.exists()) { InputStreamReader isr = new

  • 详解Java8合并两个Map中元素的正确姿势

     1. 介绍 本入门教程将介绍Java8中如何合并两个map. 更具体说来,我们将研究不同的合并方案,包括Map含有重复元素的情况. 2. 初始化 我们定义两个map实例 private static Map<String, Employee> map1 = new HashMap<>(); private static Map<String, Employee> map2 = new HashMap<>(); Employee类 public class

  • VC++实现View内容保存为图片的方法

    本文实例讲述了VC++实现View内容保存为图片的方法.分享给大家供大家参考,具体如下: 我们在单文档应用程序中,经常需要将View中的内容保存为各种格式的图片文件,以便打印.乍一看,可能不知道从哪里下手,其实主要就是用到Bitmap的save方法,如: HDC hmemDC = ::CreateCompatibleDC( hdc ); HBITMAP hBmp = ::CreateCompatibleBitmap( hdc, destRect.Width(),destRect.Height()

  • Java通过工厂、Map容器创建对象的方法

    一.通过工厂+反射+配置文件创建对象 通过工厂+反射+配置文件获取对象 /** * @Author: Promsing * @Date: 2021/3/7 - 10:09 * @Description: 通过使用工厂+配置文件+反射实现创建对象 * @version: 1.0 */ public class AbsFactory { //声明一个变量(多例模式,每次通过工厂都会创建一个不同的实例) private static Object obj; public static Object c

  • Java实现过滤掉map集合中key或value为空的值示例

    本文实例讲述了Java实现过滤掉map集合中key或value为空的值.分享给大家供大家参考,具体如下: import java.util.Collection; import java.util.HashMap; import java.util.Iterator; import java.util.Map; import java.util.Set; /** * 过滤掉map集合中key或value为空的值 * @author lmb * @date 2017-3-14 */ public

  • 如何在java 8 map中使用stream

    简介 Map是java中非常常用的一个集合类型,我们通常也需要去遍历Map去获取某些值,java 8引入了Stream的概念,那么我们怎么在Map中使用Stream呢? 基本概念 Map有key,value还有表示key,value整体的Entry. 创建一个Map: Map<String, String> someMap = new HashMap<>(); 获取Map的entrySet: Set<Map.Entry<String, String>> en

  • Java 将List中的实体类按照某个字段进行分组并存放至Map中操作

    1.JDK1.8之前: 假设有实体类User,里面有字段id,我们将相同id的User进行分组,并存放在Map中.(例子不是很恰当,但很能说明问题) public static void main(String[] args) { List<User> list = new ArrayList<>(); list.add(new User(1, 1)); list.add(new User(1, 2)); list.add(new User(2, 1)); list.add(new

随机推荐