当前位置: 首页 > news >正文

r语言做网站软文外链购买平台

r语言做网站,软文外链购买平台,腾讯云服务器WordPress,网站建站的类型集合的迭代(遍历) 使用于:List,Set 集合的迭代,是一种遍历算法 1) 迭代操作举例:播放列表的“逐个播放”;将扑克牌“逐一发放“ 2) java使用Iterator接口描述了迭代模式操作 Iterta…

集合的迭代(遍历)
 使用于:List,Set
 集合的迭代,是一种遍历算法
 1) 迭代操作举例:播放列表的“逐个播放”;将扑克牌“逐一发放“
 2) java使用Iterator接口描述了迭代模式操作
  Itertator中的方法,专门为while循环设计
 3)Iterator的实例可以从集合对象获得,是这个集合的一个元素序列视图,默认包含一个操作游标(在第一个元素之前)
 * hasNext()方法,可以检查游标是否有下一个元素
 * next()方法,移动游标到下一个元素,并且返回这个元素引用
 使用while循环配合这两个方法,可以迭代处理集合所有的元素
 4)迭代时可以使用迭代起remove()方法删除刚刚迭代的元素在迭代过程中

 *迭代时不能用使用集合方法(add,remove,set)更改集合元素

例子

 1 import java.util.ArrayList;
 2 import java.util.Iterator;
 3 import java.util.List;
 4 
 5 public class IteratorDemo {
 6  public static void main(String[] args) {
 7   List<String> eggs = new ArrayList<String>();
 8   eggs.add("鸡蛋");
 9   eggs.add("坏蛋");
10   eggs.add("鸭蛋");
11   eggs.add("鹅蛋");
12   eggs.add("傻蛋");
13   Iterator ite = eggs.iterator();
14   while(ite.hasNext()){//hasNext()方法返回一个bollean类型的值,判断是否有下一个
15    String str = ite.next();//ite.next()访问下一个元素
16    System.out.println(str);
17    ite.remove();//删除已经访问过的元素
18   }
19  }

 

 

 

Map的迭代(遍历)
三种遍历方式
A 对Key:value 进行迭代
 map.entrySet();
 *利用key:value对(Entry)的迭代输出结果
 *Entry 接口在Map接口中定义,代表Map集合中的条目
 *Map集合可以看作是Entry组成的集合
 *使用map.entrySet()方法返回所有Entry组成的Set集合
 *每个元素的类型是Entry

  Set<Entry<Character,Integer>> entrySet = map.entrySet();for(Iterator<Entry<Character,Integer>> i=entrySet.iterator();i.hasNext();){Entry<Character,Integer> entry = i.next();Character ch = entry.getKey();Integer n = entry.getValue();}

 


B 对Key进行迭代
 map.keySet();
 *map中的Key是不重复,无序的集合,所以map.keySet()
 *返回了Set类型的集合

  Set<Character> keys = map.keySet();//全部KeyIterator<Character> its = keys.iterator()while(its.hasNext()){char ch = its.next() ;System.out.println(ch);//打印出所有的Key}

 

C 对Value进行迭代
 map.values();
 *map.values() 返回map中所有Value,组成一个集合
 *这个集合的值可能有重复,并且无序,所以是Collection类型

 Collection<Integer> values = map.values();for(Iterator<Integer> its = values.iterator(); its.hasNext();){int n = its.next();System.out.println(n);//打印出所有的value}

 


案例:统计每个字符出现的次数
String s = "aabcbca";
统计结果
a:3 k:v
b:2
c:2

例子:

  1 import java.util.ArrayList;
  2 import java.util.Collection;
  3 import java.util.Collections;
  4 import java.util.Comparator;
  5 import java.util.HashMap;
  6 import java.util.Iterator;
  7 import java.util.List;
  8 import java.util.Map;
  9 import java.util.Map.Entry;
 10 import java.util.Set;
 11 
 12 public class CharConuterDemo {
 13  public static void main(String[] args) {
 14   Map<Character,Integer> map = countAll("abccacedbba");
 15   System.out.println(map);
 16   
 17   System.out.println("迭代Map的Values 实现统计字符总数:");
 18   //map.values() 返回map中所有Value,组成一个集合
 19   //这个集合的值可能有重复,并且无序,所以是Collection类型
 20   Collection<Integer> values = map.values();
 21   int all = 0;
 22   for(Iterator<Integer> its = values.iterator(); its.hasNext();){
 23    int n = its.next();
 24    all+=n;
 25   }
 26   System.out.println("总字符数:"+all);
 27   
 28   Set<Character> keys = map.keySet();//全部Key
 29   //map中的Key是不重复,无序的集合,所以map.keySet()
 30   //返回了Set类型的集合,
 31   for(Iterator<Character> its = keys.iterator();its.hasNext();){
 32    char ch = its.next() ;
 33    int n = map.get(ch);
 34    System.out.println(ch + ":" + n
 35      + "占总数的" + ((double)n/all)*100);
 36   }
 37   //利用key:value对(Entry)的迭代输出结果
 38   //在迭代之前,要先排序,再迭代输出
 39   System.out.println("利用key:value对(Entry)迭代输出");
 40   //Entry 接口在Map接口中定义,代表Map集合中的条目
 41   //Map集合可以看作是Entry组成的集合
 42   //使用map.entrySet()方法返回所有Entry组成的Set集合
 43   //每个元素的类型是Entry
 44   Set<Entry<Character,Integer>> entrySet = map.entrySet();
 45   List<Entry<Character,Integer>> list = 
 46    new ArrayList<Entry<Character,Integer>>(entrySet);
 47   Collections.sort(list,new ByValue());
 48   for(Iterator<Entry<Character,Integer>> i=list.iterator();i.hasNext();){
 49    Entry<Character,Integer> entry = i.next();
 50    Character ch = entry.getKey();
 51    Integer n = entry.getValue();
 52   }
 53  }
 54  /**
 55   * 统计字符串中每个字符的数量
 56   * @param str一个被统计的字符串
 57   * @return 一个统计的结果Map集合,其中Key是字符,value是出现次数
 58   * str = "aabccbea";
 59   * 
 60   */
 61  public static Map<Character,Integer> countAll(String str){
 62   //创建一个空map统计结果
 63   HashMap<Character,Integer> map = 
 64    new HashMap<Character,Integer>();
 65   //迭代字符串的每个字符,
 66   for(int i=0;i<str.length();i++){
 67    char ch = str.charAt(i);
 68    //检查map中是否包含这个字符
 69    if(map.containsKey(ch)){
 70     //如果包含(统计过),取出原统计值并对其+1,保存回map
 71     Integer n = map.get(ch);
 72     map.put(ch, n+1);
 73    }else{
 74     //如果没有包含,就添加新的统计结果为 1
 75     map.put(ch, 1);
 76    }
 77   }
 78   return map;
 79  }
 80 
 81 }
 82 class ByValue implements Comparator<Entry<Character,Integer>>{
 83  public int compare(Entry<Character,Integer> o1,Entry<Character,Integer> o2){
 84   return -(o1.getValue() - o2.getValue());
 85  }
 86 }
 87 
 88  
 89 
 90 sort()和Comparator之间不可告人的排序秘密
 91 
 92 例子:按照字符串数组长度排序
 93 常用写法(使用匿名类)
 94 import java.util.ArrayList;
 95 import java.util.Collections;
 96 import java.util.Comparator;
 97 import java.util.List;
 98 
 99 public class ComparatorDemo {
100  public static void main(String[] args) {
101   List<String> list= new ArrayList<String>();
102   list.add("Tom");
103   list.add("Jerry");
104   list.add("Andy");
105   Collections.sort(list, new Comparator<String>(){
106    public int compare(String o1,String o2){
107     return o1.length()-o2.length();  //按照字符串长度排序
108    }
109   });
110   System.out.println(list);
111  }
112 
113 }

 


例子2部分代码,按Value的大小排序

 1 List<Entry<Character,Integer>> list = 
 2    new ArrayList<Entry<Character,Integer>>();
 3   Collections.sort(list,new ByValue());
 4 //普通写法(未使用匿名类)
 5 class ByValue implements Comparator<Entry<Character,Integer>>{
 6  public int compare(Entry<Character,Integer> o1,Entry<Character,Integer> o2){
 7   //return (o1.getValue() - o2.getValue());//从小到大
 8   return -(o1.getValue() - o2.getValue());//从大到小
 9  }
10 }

 

 Comparator 是比较工具接口, 用于临时定义比较规则, 不是默认比较规则
 *使用时要重写compare()方法

转载于:https://www.cnblogs.com/hqr9313/archive/2012/04/16/2452811.html

http://www.lbrq.cn/news/2808919.html

相关文章:

  • 政府新闻网站建设方案种子搜索神器在线引擎
  • p2p网贷网站建设今日全国最新疫情通报
  • 做网站可以盈利吗深圳网站优化排名
  • 香港服务器网站销售网站排名
  • ai绘画软件免费百度seo搜索引擎优化厂家
  • 郑州门户网站建设哪家好杭州网站设计
  • 会简单的网站建设怎么自己制作网页
  • 两学一做考试答案网站微信代运营
  • 珠海网站推广价格网络推广服务合同范本
  • 社保网站上怎么做减员视频号视频下载助手app
  • 制作网站赚钱不最简单的网页制作
  • 做导购网站多少钱网址域名ip查询
  • 苏州网站建设制作网站建设方案书模板
  • 手工艺品外贸公司网站建设方案简易的旅游网页制作
  • 邯郸互联网公司seo网站推广实例
  • 洪泽区做网站aso排名优化
  • 做网站哪家公司最好综合查询
  • 天津网站推广宣传重庆网站优化排名推广
  • 嘉兴自助建网站竞价推广和信息流推广
  • 电商类网站建设需要多少钱seo技术培训江门
  • vue做的网站域名汇总百度极速版客服电话
  • WordPress显示403网站优化价格
  • 上海人才网官网招app优化推广
  • 山东最新通知今天山东公司网站推广优化
  • 做一般的公司门户网站投资额企业网站seo案例分析
  • 福州网站建设设计北京seo技术
  • 网店装修网站百度公司招聘信息
  • 网站建设行业增长率哈尔滨网络公司
  • 找大学生做家教去哪个网站找好新品推广计划与方案
  • 深圳网站设计权威乐云践新目前引流最好的平台
  • LLM实践系列:利用LLM重构数据科学流程01
  • Pandas中的SettingWithCopyWarning警告出现原因及解决方法
  • jenkins实现分布式构建并自动发布到远程服务器上 jenkins实现自动打包编译发布远程服务器
  • 深入解析CNAME记录:域名管理的隐形枢纽
  • 【运维进阶】Shell 变量
  • 【Java集合】List,Map,Set-详细讲解