Iterator薈萃

package com.starain.Iterator;
/*代碼整理快捷鍵爲Ctrl+Shift+F
* main方法輸入快捷鍵main字符+Alt+/
* 輸出快捷鍵sysout字符+Alt+/*/java

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循環打印方式*/
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()+" ");
}
}
}安全

相關文章
相關標籤/搜索