精华内容
下载资源
问答
  • Map的迭代

    2017-04-05 21:05:43
    1)对key:value的迭代map.entrySet(). 2)key迭代:map.keySet(); 3)value迭代:map.values();

    1)对key:value的迭代:map.entrySet().


    2)key迭代:map.keySet();


    3)value迭代:map.values();

    展开全文
  • map的迭代

    千次阅读 2012-11-06 11:06:52
    public class HashMapDemo { public static void main(String[] args) { String str = "匿名类是对原类一个继承," + "同时创建了实例,{} 就是继承"+ "以后类体。类体中可使用所有类语法。... Map map =
    public class HashMapDemo {
      public static void main(String[] args) {
        String str = "匿名类是对原类的一个继承," +
            "同时创建了实例,{} 就是继承"+
            "以后的类体。类体中可使用所有类的语法。"+
            " 匿名类不能写构造器。";
        Map<Character, Integer> map = count(str);
        System.out.println(map); 
        //1 计算总字符数量, 累加结果中所有的Values
        //2 忽略字符, 使用HashSet实现
        //3 排序输出 top 10
        //map.values() 返回所有的value 的集合
        //对Map集合的一种迭代方式: 迭代所有的值(value)
        Collection<Integer> values = map.values();
        System.out.println(values);//所有value的集合
        int chars = 0;//字符数量
        for(Iterator<Integer> i=values.iterator();
          i.hasNext();){
          int n = i.next();
          chars+=n;//累加每个字符统计结果
        }
        System.out.println("总字符数量:"+chars); 
        //迭代输出Map集合中的每个<key:value>元素
        //map.entrySet()返回Set(元素不重复)集合, 每个元素
        //的类型是Entry类型, 每个entry元素包含属性key和Value, 
        //每个元素代表map中的key:value对
        Set<Entry<Character, Integer>> entrySet = 
          map.entrySet();
        System.out.println(entrySet); 
        //通过迭代entrySet变通的迭代Map集合, Map不能直接迭代
        for (Iterator<Entry<Character, Integer>> i = 
            entrySet.iterator(); i.hasNext();) {
          Entry<Character, Integer> entry = i.next();
          System.out.print(entry.getKey()+"\t");//取出统计字符
          System.out.print(entry.getValue()+"\t");//取出字符数量
          System.out.println(
              (double)entry.getValue()/chars*100+"%");
        }
        //Map有3种迭代方法: 迭代所有key, 迭代所有value 和 
        // 迭代Entey(key:value)
        //迭代map中所有key的集合, 实现输出统计结果
        Set<Character> keys=map.keySet();//返回所有key的集合
        System.out.println(keys);
        System.out.println("迭代keys"); 
        for(Iterator<Character> i=keys.iterator();
          i.hasNext();){
          Character ch = i.next();//每个key是统计结果中的字符
          Integer n = map.get(ch);//利用key查找value
          System.out.println(ch+":"+n+","+
              ((double)n/chars*100));
        }
        List<Entry<Character, Integer>> list = 
          new ArrayList<Entry<Character,Integer>>();
        list.addAll(map.entrySet());
        Collections.sort(list, new ByValue());//排序, 是对List集合进行排序
        int index = 0;
        for (Iterator<Entry<Character, Integer>> i = 
          list.iterator(); i.hasNext();) {
          Entry<Character, Integer> entry = i.next();
          Character ch = entry.getKey();
          Integer n = entry.getValue();
          System.out.println((index++)+":"+ch+":"+n+":"+
              ((double)n/chars*100)+"%");
          if(index==10){
            break;
          }
        }
      }
      public static Map<Character, Integer> count(
          String str){
        HashMap<Character, Integer> map = 
          new HashMap<Character, Integer>();
        HashSet<Character> ignore = 
          new HashSet<Character>();//被忽略的字符集合
        ignore.add(' ');
        ignore.add('\t');
        ignore.add('。');
        ignore.add(',');    
        for(int i=0; i<str.length(); i++){
          char ch = str.charAt(i);
          if(ignore.contains(ch)){//忽略字符包含ch就处理下一个
            continue;
          }
          Integer n = map.get(ch);
          map.put(ch, n==null? 1 : n+1);
        }
        return map;
      }
    }
    class ByValue 
      implements Comparator<Entry<Character, Integer>>{
      public int compare(Entry<Character, Integer> o1,
          Entry<Character, Integer> o2) {
        return -(o1.getValue()-o2.getValue());
      }
    }
    


    
    
    展开全文
  • map的迭代

    2018-08-09 11:35:00
    Iterator<...map的迭代器,用作遍历map中的每一个键值对 Iterator是迭代器,map之前应该定义过,姑且认为是HashMap。<Entry<String,String>>表示map中的键值对都是String类型的。m...
    Iterator<Entry<String,String>> iter=map.entrySet().iterator();

     map的迭代器,用作遍历map中的每一个键值对

    Iterator是迭代器,map之前应该定义过,姑且认为是HashMap。
    <Entry<String,String>>表示map中的键值对都是String类型的。
    map.entrySet()是把HashMap类型的数据转换成集合类型。
    map.entrySet().iterator()是去获得这个集合的迭代器,保存在iter里面。

     迭代器这么用:
    while(iter.hasNext()) {
    Entry obj = it.next();//就能获得map中的每一个键值对了
    }

    Iterator<String> iter;//声明一个迭代器,泛型里面是String类型,表示迭代元素是String类型的。
    Iterator<Entry<String,String>> iter;//而你提供的要稍微复杂一点,迭代元素本身就是一个Entry键值对,
    Entry<String,String>表示其key值是String,value值也是String。


     

    HashSet set=map.entrySet();//将map类型数据转换成集合set类型的。
    iter=set.iterator();//获得集合的迭代器。迭代器只针对集合类型的数据,
    因此map类型的必须先转换成集合类型才能使用迭代器去获取元素。

     

    keySet获得的只是key值的集合,
    values获得的是value集合,
    entryset获得的是键值对的集合。

     

    转载于:https://www.cnblogs.com/setout/p/9447903.html

    展开全文
  • C++中map的迭代器操作

    千次阅读 2017-06-08 16:30:57
    C++中map的迭代器操作 可以直接插入pair类型,也可以进行直接赋值 pair类型的左边是第一关键字,右边是第二关键字,显然,map是由红黑树封装起来的,所以支持动态维护平衡树,因此,遍历map的时候第一关键字的数据...

    C++中map的迭代器操作

    可以直接插入pair类型,也可以进行直接赋值
    pair类型的左边是第一关键字,右边是第二关键字,显然,map是由红黑树封装起来的,所以支持动态维护平衡树,因此,遍历map的时候第一关键字的数据是有序的


    #include<cstdio>
    #include<iostream>
    #include<cstring>
    #include<map>
    #include<vector>
    #include<queue>
    #define MAXN 
    using namespace std;
    int n,x,y;
    int main(){
        ios::sync_with_stdio(false);
        //freopen(".txt","r",stdin);
        //freopen(".out","w",stdout);
        map<int,int>m;//
    //  pair<int,int>p (1,2); 
        m.insert(pair<int,int>(1,2));
        cin>>n;
        for(register int i=1;i<=n;i++){
            cin>>x>>y;
            pair<int,int> p (x,y);
            m.insert(p);
        } cout<<endl;//所以map的第一关键字是不能重复的,因为map是映射,也就是函数的定义,因此数据结构里存储的首先映射的内容 
        for(register map<int,int>::iterator i=m.begin();i!=m.end();i++){
            pair<int,int>it=*i;
            cout<<it.first<<" "<<it.second<<endl;
        }
        return 0;
    }

    数据不可重:

    这里写图片描述


    数据按照第一关键字排序:

    这里写图片描述

    展开全文
  • Map的迭代操作

    2011-03-23 16:25:01
    ]Map的迭代操作 public static void main(String[] args) { Map map = new HashMap(); List list1 = new ArrayList(); list1.add(11); list1.add(111); list1.add(1111); List list2 = ...
  • Map的迭代以及性能对比 上三篇文章分析了三种Map的数据结构和增加删除操作。 HashMap是基于 数组 + 单向链表的数据结构,通过hash算法算出Index位置,如果没有旧元素直接存储,如果有,则进行hashCode比较和equals...
  • Java Map 的迭代

    千次阅读 2014-07-30 19:43:28
    Map中的迭代 有两种 方式 遍历 Map的方法:  1 Set KeySet(): 获取所有的键,得到set集合,迭代, 通过get( key)获取值!  2 Set> entrySet()  把集合中的每一个键值对 形成的映射关系获取到。存到一...
  • C++ map的迭代器遍历

    万次阅读 2018-12-14 16:24:11
    map&lt;string,int&gt; m; map&lt;string,int&gt;::iterator it; it = m.begin(); while(it != m.end()) { it-&gt;first; it-&gt;second; it ++; }
  • Map的迭代简单写法

    2017-07-31 16:19:05
    Map, Object> paramMap = new HashMap, Object>(); ... for (Map.Entry, Object> e : paramMap.entrySet()) { String key = e.getKey(); String value = e.getValue().to
  • 直会用到map的迭代器用来遍历元素,用久了也就没忽略了他的另一个性质,它是有序遍历的,哈哈。
  • map<vector<string>,int>::iterator it_ci = complexmap_idf.begin(); for (; it_ci != complexmap_idf.end(); ++it_ci) { vector<string> temp_vec_1 = it_ci->...
  • 迭代: keySet() 缺点:keySet方法只返回了所有键,没有值 values() 使用values方法进行遍历 缺点...首先创建Map实现类,并相应添加元素 Map<String, String> map = new HashMap<String, String>(); ...
  • Map对象 Map 对象保存键值对。任何值(对象或者原始值) 都...Map键值是有序(FIFO 原则),而添加到对象中键则不是。 Map 键值对个数可以从 size 属性获取,而 Object 键值对个数只能手动计算。 Objec...
  • Map的迭代方式小结

    2016-08-18 20:45:26
    第一种: Set keys =map.keySet(); Iterator ite = keys.iterator(); while(ite.hasNext()) { K key = ite.next();
  • 使用public Set keySet()方法:将map中所有键存入到Set集合。因为set具备迭代器。 所有可以迭代方式取出所有键,在根据get方法。获取每一个键对应值。 方式二:使用public Set<Map.Entry,V>> entrySet()...
  • Map的形式分为四种:  Map<String,String> map=new HashMap<String,String>();  map.put("1","没有什么不可以");  map.put("2","一定可以做到");  map.put("3","一定行");  1、通过获取map....
  • ★ 把map集合转成set的方法: ...entry是访问键值关系的入口,是map的入口,访问的是map中的键值对。 ************** 取出map集合中所有元素的方式一:keySet()方法。 可以将map集合中的键都取

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 11,325
精华内容 4,530
关键字:

map的迭代