精华内容
下载资源
问答
  • 1.Map map = new HashMap();Iterator it = map.entrySet().iterator();while (it.hasNext()) {Map.Entry entry = (Map.Entry) it.next();Object key = entry.getKey();Object value = entry.getValue();}2.Map map =...

    1.

    Map map = new HashMap();

    Iterator it = map.entrySet().iterator();

    while (it.hasNext()) {

    Map.Entry entry = (Map.Entry) it.next();

    Object key = entry.getKey();

    Object value = entry.getValue();

    }

    2.

    Map map = new HashMap();

    Iterator it = map .keySet().iterator();

    while (it.hasNext()){

    String key;

    key=(String)it.next();

    logger.info("email-" + key + ":" + map .get(key));

    }

    3.

    Object  指的是keySet的参数类型 例如:String  long  int

    Map map = new HashMap();

    for(Object m: map .keySet()){

    logger.info("email-" + m+ ":" + map .get(m));

    }

    展开全文
  • Java遍历Mappublic static void main(String[] args) {Map map = new HashMap();map.put("1", "value1");map.put("2", "value2");map.put("3", "value3");//第一种:普遍使用,二次取值System.out.println("通过Map....

    Java遍历Map

    public static void main(String[] args) {

    Map map = new HashMap();

    map.put("1", "value1");

    map.put("2", "value2");

    map.put("3", "value3");

    //第一种:普遍使用,二次取值

    System.out.println("通过Map.keySet遍历key和value:");

    for (String key : map.keySet()) {

    System.out.println("key= "+ key + " and value= " + map.get(key));

    }

    //第二种

    System.out.println("通过Map.entrySet使用iterator遍历key和value:");

    Iterator> it = map.entrySet().iterator();

    while (it.hasNext()) {

    Map.Entry entry = it.next();

    System.out.println("key= " + entry.getKey() + " and value= " + entry.getValue());

    }

    //第三种:推荐,尤其是容量大时

    System.out.println("通过Map.entrySet遍历key和value");

    for (Map.Entry entry : map.entrySet()) {

    System.out.println("key= " + entry.getKey() + " and value= " + entry.getValue());

    }

    //第四种

    System.out.println("通过Map.values()遍历所有的value,但不能遍历key");

    for (String v : map.values()) {

    System.out.println("value= " + v);

    }

    }

    Java遍历Set

    对 set 的遍历

    1.迭代遍历:

    Set set = new HashSet();

    Iterator it = set.iterator();

    while (it.hasNext()) {

    String str = it.next();

    System.out.println(str);

    }

    2.for循环遍历:

    for (String str : set) {

    System.out.println(str);

    }

    优点还体现在泛型 假如 set中存放的是Object

    Set set = new HashSet();

    for循环遍历:

    for (Object obj: set) {

    if(obj instanceof Integer){

    int aa= (Integer)obj;

    }else if(obj instanceof String){

    String aa = (String)obj

    }

    ........

    }

    展开全文
  • 昨天做安卓开发的时候,在进入一个界面初始化的时候。由于上一次提交了数据,在这次get的时候 会有一些不全的数据出来会有一些不好看而且影响后面的数据正确性和有效性。...importjava.util.Map.Ent...

    昨天做安卓开发的时候,在进入一个界面初始化的时候。由于上一次提交了数据,在这次get的时候 会有一些不全的数据出来会有一些不好看而且影响后面的数据正确性和有效性。

    import java.util.ArrayList;

    import java.util.HashMap;

    import java.util.List;

    import java.util.Map;

    import java.util.Map.Entry;

    public class Test {

    static List> list = new ArrayList<>();

    public static void main(String[] args) {

    listValue();

    deduplication(list);

    }

    public static void deduplication(List> list) {

    /*最后得到的数据*/

    Map> dataMap = new HashMap<>();

    /*存放比较dataMap中的Key(不会出现后续已经添加的对象的key)*/

    List keys;

    System.out.println("========================请求得到的数据");

    boolean flag = true; // 第一次进入是将list中的第一个放入dataMap中

    for (Map map : list) {

    if(map.isEmpty()){

    // 当list中map出现空时跳过

    continue;

    }

    keys = new ArrayList<>();

    for (Entry> entry : dataMap.entrySet()) {

    keys.add(entry.getKey());

    }

    String key = map.get("b") + "+" + map.get("a"); // 存放dataMap中的key,防止出现重复,以特殊符号拼接

    if (flag) {

    dataMap.put(key, map); // 第一次将list中第一个map放入dataMap,此时dataMap存在一个唯一的对象

    flag = false;

    } else {

    if(dataMap.size() > 0){ // 当dataMap的大小大于0时进行循环

    for (String keyM : keys) { // 循环keys  上一次dataMap中存在的key,因为循环可能添加值进入dataMap中,不能直接循环dataMap

    // 当循环的list中的map的key[a]和key[b]值与dataMap中的map的key[a]和key[b]值相同时

    if (dataMap.get(keyM).get("a").equals(map.get("a")) && dataMap.get(keyM).get("b").equals(map.get("b"))) {

    double tempC = (double) map.get("c");

    // 判断key[c]的值的大小,取得较大对象,重新对dataMap的值进行覆盖,实现获取最大值

    if (tempC >= Double.parseDouble(dataMap.get(keyM).get("c").toString())) {

    dataMap.put(key, map);

    }

    } else {

    dataMap.put(key, map);

    }

    }

    }

    }

    System.out.println(map);

    }

    System.out.println("========================最后结果");

    for (String key : dataMap.keySet()) {

    System.out.println(dataMap.get(key));

    }

    }

    public static void listValue() {

    Map map1 = new HashMap<>();

    map1.put("a", "a");

    map1.put("b", "b");

    map1.put("c", 2.0);

    Map map2 = new HashMap<>();

    map2.put("a", "a2");

    map2.put("b", "b2");

    map2.put("c", 10.0);

    Map map3 = new HashMap<>();

    map3.put("a", "a");

    map3.put("b", "b");

    map3.put("c", 1.5);

    Map map4 = new HashMap<>();

    map4.put("a", "a");

    map4.put("b", "b");

    map4.put("c", 211.0);

    Map map5 = new HashMap<>();

    map5.put("a", "a5");

    map5.put("b", "b5");

    map5.put("c", 2.5);

    Map map6 = new HashMap<>();

    map6.put("a", "a6");

    map6.put("b", "b6");

    map6.put("c", 2.5);

    Map map7 = new HashMap<>();

    map7.put("a", "a6");

    map7.put("b", "b6");

    map7.put("c", 2.9);

    list.add(map1);

    list.add(map2);

    list.add(map3);

    list.add(map4);

    list.add(map5);

    list.add(map6);

    list.add(map7);

    }

    }

    这个是一段例子解决的问题 把a=a ,b=b  然后这2个相等了 在去判断c的大小。刚刚开始的时候我知道这个思想如何做。但是那会下午4点中 中午有没吃饭,就卡壳了,晚上回去之后花了点时间优化 了下变成了这个样子。下面上我实际开发的代码:

    /**

    *

    * @Title: initview

    * @Description: 用于初始化之后设置界面上的字段

    * @param 设定文件

    * @return void 返回类型

    * @throws

    */

    public void initview() {

    List pack_operatios3 = new ArrayList();

    /*存放比较pack_operatios5中的Key(不会出现后续已经添加的对象的key)*/

    //List pack_operatios5 =new ArrayList();

    Map pack_operatios5 = new HashMap();

    List keys;

    pack_operations[]    pack_operatios4;

    for (int i = 0; i 

    String idss = incomingdate.getData().getTask()[i].getId()

    .toString();// 获取当前的id

    if (ids.equals(idss)) {

    taskname.setText(incomingdate.getData().getTask()[i].getId().toString());

    Targettary.setText(incomingdate.getData().getTask()[i].getName().toString());

    pack_operatios4=incomingdate.getData().getTask()[i].getPack_operations();

    for (int j = 0; j 

    pack_operatios3.add(pack_operatios4[j]);

    }

    boolean flag = true;

    for (pack_operations s1 : pack_operatios3) {

    //第一次循环

    if(s1==null||s1.equals("")){

    // 当list中map出现空时跳过

    continue;

    }

    keys = new ArrayList();

    for (Entry entry : pack_operatios5.entrySet() ) {

    keys.add(entry.getKey());

    }

    String key=s1.getEan13();//获取到en13

    if (flag) {

    pack_operatios5.put(key,  s1);

    flag = false;

    }else {

    if (pack_operatios5.size()>0) {// 当dataMap的大小大于0时进行循环

    int  c=0;

    for (String keyM : keys) {// 循环keys  上一次dataMap中存在的key,因为循环可能添加值进入dataMap中,不能直接循环dataMapif (pack_operatios5.get(keyM).getEan13().equals(s1.getEan13())) {

    // 判断key[c]的值的大小,取得较大对象,重新对dataMap的值进行覆盖,实现获取最大值

    double tempC = Double.parseDouble( s1.getProduct_qty().toString());

    if (tempC <= Double.parseDouble(pack_operatios5.get(keyM).getProduct_qty().toString())) {

    pack_operatios5.put(key,  pack_operatios5.get(keyM));

    c=1;

    }

    }

    }

    if (c==0) {

    pack_operatios5.put(key,   s1);

    }

    }

    }

    }

    System.out.println("========================最后结果");

    for (String key : pack_operatios5.keySet()) {

    System.out.println(pack_operatios5.get(key));

    }

    List list = new ArrayList(pack_operatios5.values());

    pack_operations[] arr = (pack_operations[])list.toArray(new pack_operations[list.size()]);

    incomingdate.getData().getTask()[i].setPack_operations(arr);

    for (int k = 0; k 

    HashMap map1 = new HashMap();

    String sff;

    if (incomingdate.getData().getTask()[i].getPack_operations()[k].getProduct_qty()!=null||incomingdate.getData().getTask()[i].getPack_operations()[k].getProduct_qty().equals("")) {

    sff=incomingdate.getData().getTask()[i].getPack_operations()[k].getProduct_qty().toString();

    Double d2 = Double.parseDouble(sff);

    }else {

    sff="0";

    }

    Double d2 = Double.parseDouble(sff);

    map1.put("bestincomingtextname",incomingdate.getData().getTask()[i].getPack_operations()[k].getEan13() );

    System.out.println(incomingdate.getData().getTask()[i].getPack_operations()[k].getEan13() );

    map1.put("bestincomingnumber",(new Double(d2)).intValue() );

    map1.put("bestincomingtegert",incomingdate.getData().getTask()[i].getPack_operations()[k].getLocation_dest_id()[1]);

    map1.put("bestincomingStocknumber","0");

    mListItem.add(map1);

    System.out.println(mListItem);

    }

    }

    }

    }

    如果有问题可以发邮件给我:haiabi@163.com

    展开全文
  • 一共四中方法,前两种是迭代器取值,后两种是随机取值循环了5000万次,时间分别为:迭代器读取的速度大约是随机读取的速度的1.5倍,数据量越大,差距越明显。另外,插入是读取的100倍左右的时间(这个判定只是个...

    一共四中方法,前两种是迭代器取值,后两种是随机取值,循环了5000万次,时间分别为:迭代器读取的速度大约是随机读取的速度的1.5倍,数据量越大,差距越明显。

    另外,插入是读取的100倍左右的时间(这个判定只是个大概参考)。

    48138(插入)

    403(迭代器读取)

    400(迭代器读取)

    653(随机读取)

    561(随机读取)

    package main;

    import java.util.HashMap;

    import java.util.Iterator;

    import java.util.Map;

    import java.util.Map.Entry;

    public class test {

    public static void main(String[] args) {

    int mapCount = 50000000;

    String tmp = "";

    Map testMap = new HashMap<>();

    String testValue = "";

    Long startTime0 = System.currentTimeMillis();

    for(int i = 1;i

    tmp = testMap.put(i, testValue);

    }

    Long endTime0 = System.currentTimeMillis();

    System.out.println(endTime0-startTime0);

    Long startTime1 = System.currentTimeMillis();

    for(Entry entry : testMap.entrySet()){

    tmp = entry.getValue();

    }

    Long endTime1 = System.currentTimeMillis();

    System.out.println(endTime1-startTime1);

    Long startTime2 = System.currentTimeMillis();

    Iterator> it = testMap.entrySet().iterator();

    while(it.hasNext()){

    tmp = it.next().getValue();

    }

    Long endTime2 = System.currentTimeMillis();

    System.out.println(endTime2-startTime2);

    Long startTime3 = System.currentTimeMillis();

    for(Integer i : testMap.keySet()){

    tmp = testMap.get(i);

    }

    Long endTime3 = System.currentTimeMillis();

    System.out.println(endTime3-startTime3);

    Long startTime4 = System.currentTimeMillis();

    for(Entry entry : testMap.entrySet()){

    tmp = testMap.get(entry.getKey());

    }

    Long endTime4 = System.currentTimeMillis();

    System.out.println(endTime4-startTime4);

    }

    }

    展开全文
  • JAVA循环取值Map<Map<String,List>,Map<String,List>> map = New HashMap() 前言:在对接Api时,对方传输的是上述集合,实现map与list对应输出。 案例: Map<Map<String,List>,Map<...
  • for(Map.Entry<String,Object> entry : map.entrySet()) { System.out.println("key="+ entry.getKey() +",value="+ entry.getValue()); }第二种方式:如果只需要map中的键或者值,你可...
  • 昨天做安卓开发的时候,在进入一个界面初始化的时候。由于上一次提交了数据,在这次get的时候 会有一些不全的数据出来会有一些不好看而且影响后面的数据正确性和有效性。...importjava.util.Map.Ent...
  • 利用Java提供的Random类。...利用一个计数器,对Set进行循环,当计数器等于随机数时返回当前元素,对于Map的处理也类似。不知有没有更好的方法……package com.xjj.util;import java.util.List;imp...
  • Collection集合框架集Java培训之Collection集合框架集MapMap概述Map与Collection并列存在。用于保存具有映射关系的数据:Key-ValueMap 中的 key 和 value 都可以是任何引用类型的数据Map 中的 key 不允许重复key 和 ...
  • 循环map取值的方法

    2016-09-08 13:00:41
    [size=large][b] 循环map取值的方法,如下所示:[/b][/size] [b]方法一:[/b][code="java"][code="java"] Map map = new HashMap(); map.put("key1", "value1"); ...
  • 方法一 通过Map.entrySet遍历key和value,在for-each循环中使用entries来遍历.推荐,尤其是容量大时这是最常见的并且在大多数情况下也是最可取的遍历方式。在键值都需要时使用。Map map = new HashMap();for (Map....
  • 使用产品:iobject.net 9D(2019) 操作系统:WIN10X64您好,我现在有一个点数据集和相应的九条记录,我要遍历这个记录集,循环给服务器发送每一行记录对应的“trasID”字段,现在我调用超图的记录集移动到首尾,然后...
  • Java Map 遍历方法

    2015-03-24 11:51:29
    Map遍历的四种方法  Map map = new HashMap();  map.put("1", "value1");... map.put("2", "value2");... map.put("3", "value3");... System.out.println("根据Map.keySet循环key和value值");  
  • Java循环一个对象的所有属性,并通过反射给这些属性赋值/取值 说到循环遍历,最常见的遍历数组/列表、Map等。但是,在开发过程中,有时需要循环遍历一个对象的所有属性。遍历对象的属性该如何遍历呢?查了一下资料...
  • Java Map对象的遍历

    2016-04-09 11:14:00
    一般情况下Map的实现类中用的最多的...1. 在for-each循环中使用entries来遍历 (既要取键,又要取值Map<String, String> map = new HashMap<String, String>(); for (Map.Entry<String, S...
  • 共回答了26个问题采纳率:92.3%这个三重循环肯定会降低性能.循环次数是66*22*20次.另外计算集合的大小应该...改良的代码如下:循环次数是66+22+20Map callBarMap = new HashMap();int callBarsize = callBarsList.s...
  • Java循环一个对象的所有属性,并通过反射给这些属性赋值/取值说到循环遍历,最常见的遍历数组/列表、Map等。但是,在开发过程中,有时需要循环遍历一个对象的所有属性。遍历对象的属性该如何遍历呢?查了一下资料,...
  • 因此判断value(而不是key)是否存在,方法一:你可以循环遍历map,然后按照second来取值判断;方法二:当然也可以通过stl中的算法,比如find_if,并配合函数或函数对象来实现。下面的例子, 先...
  • Map循环4种方式

    千次阅读 2018-07-13 16:52:57
    遍历方式: Map&lt;String,String&gt; map = new HashMap&lt;String, String&gt;(); map.put("1"...java"... map.put("... map.put("...1、取值遍历 for(String key
  • 文章目录一、在for循环中使用entries实现Map的遍历二、在for循环中遍历key或者values,一般适用于只需要map中的key或者value时使用,在性能上比使用entrySet较好三、通过Iterator遍历四、通过键找值遍历,这种方式的...
  • Java中遍历Map对象的4种方法】 1、通过Map.entrySet遍历key和value,在for-each循环中使用entries来遍历.推荐,尤其是容量大时。 2、通过Map.keySet遍历key,通过键找值value遍历(效率低),普遍使用,二次取值。...
  • 1、通过Map.entrySet遍历key和value,在for-each循环中使用entries来遍历.推荐,尤其是容量大时。 2、通过Map.keySet遍历key,通过键找值value遍历(效率低),普遍使用,二次取值。 3、如果只需要map中的...
  • 遍历Map集合的常用方式有三种:使用keySet的方式,使用entrySet的方式,使用values()取值的方式,这三种方式中,都有对应的for循环遍历和Iterator遍历的方式取值。 具体用法如下: public class MapTest { ...
  • java

    2020-06-22 21:41:33
    map:以键值对的形式存储数据(以键取值,键不能重复,值可以重复) ArrayList 实现了一个长度可变的数组,在内存空间中开辟一串连续的空间,与数组相比ArrayList长度可以随意修改 这种存储结构,循环遍历时的速度比较...
  • 以下文章来源于阿里巴巴中间件,作者王超需要 Map 的主键和取值循环中只需要 Map 的主键时,迭代 keySet() 是正确的。但是,当需要主键和取值时,迭代 entrySet() 才是更高效的做法,比先迭代 keySet() 后再去 get...

空空如也

空空如也

1 2 3 4 5 6
收藏数 112
精华内容 44
关键字:

javamap循环取值

java 订阅