兩個關於容器的程式

來源:互聯網
上載者:User

貼兩個學容器時的程式,複習起來方便。

1.測試List、Set、Map集合的遍曆操作

/** * 測試List、Set、Map集合的遍曆操作 * 在以後遍曆容器時,List盡量採用索引遍曆,Set盡量採用迭代器 *  */package com.bjsxt.test.collection;import java.util.ArrayList;import java.util.Collection;import java.util.HashMap;import java.util.HashSet;import java.util.Iterator;import java.util.List;import java.util.Map;import java.util.Map.Entry;import java.util.Set;public class TestIterate {public static void testList(){List<Student>  list = new ArrayList<Student>();list.add(new Student("張三"));list.add(new Student("李四"));list.add(new Student("王五"));list.add(new Student("趙六"));//使用索引遍曆for(int i=0;i<list.size();i++){Student stu1 = list.get(i);System.out.println(stu1.getName());}//使用增強for迴圈for(Student stu:list){System.out.println(stu.getName());}//使用迭代器,這種方式既可以迭代List,也能迭代SetIterator<Student> iter = list.iterator();while(iter.hasNext()){Student stu2 = iter.next();//返回當前元素,並且讓遊標指向下一個System.out.println(stu2.getName());}//或者也可用下面的方法for(Iterator<Student> iter2 = list.iterator();iter2.hasNext();){Student stu = iter2.next();System.out.println(stu.getName());}}public static void testSet(){Set<Student> set = new HashSet<Student>();set.add(new Student("張三"));set.add(new Student("李四"));set.add(new Student("王五"));set.add(new Student("趙六"));//使用增強型for迴圈for(Student stu:set){System.out.println(stu.getName());}//使用迭代器(既可以迭代List,也能迭代Set)Iterator<Student> iter = set.iterator();while(iter.hasNext()){Student stu = iter.next();System.out.println(stu.getName());}for(Iterator<Student> iter2 = set.iterator();iter2.hasNext();){Student stu = iter2.next();System.out.println(stu.getName());}}public static void testMap(){Map<String,Student>  map = new HashMap<String,Student>();map.put("a", new Student("張三"));map.put("b", new Student("李四"));map.put("c", new Student("王五"));//遍曆keySet<String> set1 = map.keySet();//為什麼要這樣用Iterator<String> iter1 = set1.iterator();while(iter1.hasNext()){String key = iter1.next();System.out.println(key + "-----" + map.get(key).getName());}//遍曆valueCollection<Student> set2 = map.values();Iterator<Student> iter2 = set2.iterator();while(iter2.hasNext()){Student v = iter2.next();System.out.println(v.getName());}//遍曆Entry(索引值對)Set<Entry<String,Student>> set3 = map.entrySet();Iterator<Entry<String,Student>> iter3 = set3.iterator();while(iter3.hasNext()){Entry<String,Student> e = iter3.next();System.out.println(e.getKey() + "-----" + e.getValue());}}public static void main(String[] args) {testList();testSet();testMap();}}


2.利用Map對一個字串中的元素進行分類計數

import java.util.HashMap;import java.util.Iterator;import java.util.Map;import java.util.Map.Entry;import java.util.Set;import java.util.StringTokenizer;public class TestHashMap {public static void main(String[] args) {String str = "what a woderful day a what what";Map<String,Integer> map = new HashMap<String,Integer>();//構造容器StringTokenizer s = new StringTokenizer(str);while(s.hasMoreElements()){String strTemp = (String) s.nextElement();//將Object類型強制轉換為String型//儲存if(!map.containsKey(strTemp)){//空袋子map.put(strTemp, 1);//建立容器並放入值}else{map.put(strTemp, map.get(strTemp)+1);}}//方法1//遍曆map中的key,迭代器 +Keyset/get<推薦>Set<String> key = map.keySet();Iterator<String> iter1 = key.iterator();while(iter1.hasNext()){String str1 = iter1.next();System.out.println(str1 + "--->" + map.get(str1));}//用加強型for + Keyset/get for(String keys:key){System.out.println(key + "--->" +map.get(keys));}//方法2//使用entrySet + foreach + 迭代器Set<Map.Entry<String,Integer>> entry = map.entrySet();Iterator<Map.Entry<String,Integer>> iter2 = entry.iterator();while(iter2.hasNext()){Map.Entry<String, Integer> en = iter2.next();String key2 = en.getKey();Integer it1 = en.getValue();System.out.println(key2 + "--->" + map.get(key2));}//foreachfor(Entry<String,Integer> entry2:entry){String key3 = entry2.getKey();Integer it2 = entry2.getValue();System.out.println(key3 + "--->" + map.get(key3));}/*這是列印字串中的元素 *  * while(s.hasMoreTokens()){System.out.println(s.nextToken());}*/}}

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.