Iterator荟萃
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循环打印方式*/
			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()+" ");
			}
	}
}
 
                    
                     
                    
                 
                    
                
 
                
            
         
         浙公网安备 33010602011771号
浙公网安备 33010602011771号