package com.starain.Iterator;/*代碼整理快捷鍵為Ctrl+Shift+F * main方法輸入快捷鍵main字符+Alt+/ * 輸出快捷鍵sysout字符+Alt+/*/
import java.util.*;//常用的兩個包,java.lang語言包,java.util實用包/*java.lang自動引入, * 包含數據包裹類(Byte,Short,Integer,Long,Float,Double,Character,Boolean), * 字符串類(常量String,變量StringBuffer,StringBuilder) * 數學類Math, * 系統和運行時類(System,Runtime), * 類操作類(Class,ClassLoader) * java.util手動引入 * 包括日期類(Date,Calendar,GregorianCalendar) * GregorianCalendar cal = (GregorianCalendar) GregorianCalendar.getInstance(); * cal.isLeapYear(year);返回boolean類型,判斷是否是閏年 * 集合類(Collection--Set--HashSet,TreeSet; * Collection--List--ArrayList,Vector,LinkedList; * Map--HashTable,HashMap,WeakHashMap) * */
public class IteratorDemo1 {public static void main(String[] args) {/* List 是按照原序有序集合,可重復 * ArrayList異步方式,性能高,但是線程不安全 * Vector為同步方式,性能低,但是線程安全 */List<String> list1 = new ArrayList<String>();//List為接口,不能直接實例化,利用泛型,子類實例化方式/*添加操作*/list1.add("my");list1.add("name");list1.add("is");list1.add("starain");/*判斷是否為空操作*/boolean bool1 = list1.isEmpty();if (!bool1) {/*當作數組整天輸出*/System.out.PRintln(list1);/*增強for循環(huán)打印方式*/for (String str : list1) {System.out.print(str + " ");}System.out.println("/n==================");System.out.print("兩條華麗的分割線");System.out.println("/n==================");/*Iterator接口打印輸出方式 * 集合輸出的標準形式是用Iterator接口 * 原理:Iterator是專門的迭代輸出接口,將元素逐個判斷是否有內容,若有內容則將內容取出*/Iterator<String> iterator1 = list1.iterator();while (iterator1.hasNext()) {System.out.print(iterator1.next() + " ");}/*移除操作*/list1.remove("is");System.out.println();for (String str2 : list1) {System.out.print(str2 + " ");}}System.out.println("/n==================");System.out.print("兩條華麗的分割線");System.out.println("/n==================");/*Set是不重復集合,不允許重復,重復則后覆蓋前 * HashSet無序(非原序) * TreeSet自動排序,基于Map,當無法完成排序會報錯*/Set<String> set1 = new HashSet<String>();Set<String> set2 = new TreeSet<String>();/*HashSet set1添加元素*/set1.add("A");//快速復制粘貼快捷鍵Ctrl+Alt+方向下鍵set1.add("B");set1.add("B");set1.add("D");set1.add("C");set1.add("E");set1.add("F");set1.add("C");set1.add("G");/*輸出*/System.out.println(set1);/*TreeSet set2添加元素*/set2.add("A");//快速復制粘貼快捷鍵Ctrl+Alt+方向下鍵set2.add("B");set2.add("B");set2.add("D");set2.add("C");set2.add("E");set2.add("F");set2.add("C");set2.add("G");/*輸出*/System.out.println(set2);/*Map例子 * Map接口中的保存形式是key->value形式,例如通訊錄,利用姓名key,找到對應的電話號碼value * Map<K,V>兩個泛型,對應key和value*/Map<String,String> map1 = new HashMap<String,String>();/*Map的添加方式為put()方法*/map1.put("key1", "www");map1.put("key2", ".");map1.put("key3", "starain");map1.put("key4", ".");map1.put("key5", "index");map1.put("key6", ".");map1.put("key7", "com");/*先判斷存性 * 通過key判斷是containKey(key) * 通過value判斷containValue(value)*/boolean boolkey1 = map1.containsKey("key1");boolean boolkey2 = map1.containsKey("key99");if(boolkey1){/*通過key打印value*/String str1 = map1.get("key1");System.out.println(str1);}else System.out.println("key1不存在");if(boolkey2){String str99 = map1.get("key99");System.out.println(str99);}else System.out.println("key99不存在");/*iterator接口方式打印*//*打印key*/Set<String> s = map1.keySet();//keySet()返回值為Set類型Iterator<String> i1 = s.iterator();while(i1.hasNext()){System.out.print(i1.next()+" ");//操作中禁止用集合方式對集合進行remove移除操作}System.out.println("/n==================");System.out.print("兩條華麗的分割線");System.out.println("/n==================");/*打印value*/Collection<String> c = map1.values();//value()返回的是Collection類型Iterator<String> i2 = c.iterator();while(i2.hasNext()){System.out.print(i2.next()+" ");}}}
新聞熱點
疑難解答