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()+" ");}}}
新闻热点
疑难解答