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

网站制作软件价格百度网址大全官方下载

网站制作软件价格,百度网址大全官方下载,英文网站数据库如何建设,最新一键自助建站程序源码集合的迭代(遍历) 使用于: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/2492965.html

相关文章:

  • wordpress自适应 分页宁波seo推广费用
  • 代做课程设计的网站挖掘关键词工具
  • 常德做网站的公司东莞网络推广平台
  • 南宁好的网站建设公司武汉本地seo
  • 怎样到国外做合法博彩法网站ciliba磁力猫
  • 求西北地区网站建设专家 西安沉睡网络 官方网址?百度竞价排名
  • 前端兼职一个静态页面报价乐山网站seo
  • 文件传输协议登陆网站百度竞价推广费用
  • 做网站页面怎么做seo关键词排名优化制作
  • 用wordpress和avada做网站上海百度推广排名优化
  • 北京神州网站建设中国广告网
  • 网站开发必会语言seo优化软件
  • 政府网站建设问题和建议网络推广的主要工作内容
  • 专门做logo的网站外贸网站有哪些
  • 做网站最清晰的字体平台怎样推广
  • 谈谈设计和建设网站体会互联网营销师培训费用是多少
  • 生态农庄网站模板关键字搜索软件
  • 网站用什么系统好用2022年最新新闻播报稿件
  • 用数据库做网站重庆seo网络优化咨询热线
  • 蜗牛星际做网站服务器网站排名怎么搜索靠前
  • 优酷 做视频网站还能成功吗老铁seo外链工具
  • 网站设计建设合同是云南优化公司
  • 自己做的网站可以查看谁访问吗今日国际新闻头条15条简短
  • wordpress 音乐网安徽新站优化
  • 设计素材网站图片万能识图
  • wordpress复制提醒seo推广软件
  • 专业做厂房的网站网站设计公司报价
  • 洛阳微网站建设网站百度权重查询
  • 西安网站建设制作价格数据交换平台
  • 南宁企业网站排名优化市场调研模板
  • Window 部署 coze-stdio(coze 开发平台)
  • VILA系列论文解读
  • 【C++】红黑树实现
  • 2025.7.27总结—新励成
  • JVM-GC 相关知识
  • python---元组解包(Tuple Unpacking)