java学习笔记5

2018-11-02  本文已影响0人  海洋_5ad4

正则表达式的概述和简单使用

package com.heima.regex;

public class Demo1_regex {

    /**
     * @param args
     */
    public static void main(String[] args) {
        String regex = "[1-9]\\d{4,14}";
        System.out.println("23456".matches(regex));
        System.out.println("023456".matches(regex));
    }

}

字符类演示

package com.heima.regex;

public class Demo2_regex {

    /**
     * @param args
     */
    public static void main(String[] args) {
        String regex1 = "[a-d[m-p]]";  //a到d或m到p
        String regex2 = "[a-z&&[def]]";  //d或e或f
        String regex3 = "[a-z&&[^bc]]";  //a到z除了b和c
        String regex4 = "[a-z&&[^m-p]]";//a到z,除了m到p
    }

    private static void demo3() {
        String regex = "[a-zA-Z]";
        System.out.println("a".matches(regex));
        System.out.println("A".matches(regex));
        System.out.println("z".matches(regex));
        System.out.println("Z".matches(regex));
        System.out.println("1".matches(regex));
        System.out.println("%".matches(regex));
    }

    private static void demo2() {
        String regex = "[^abc]";
        System.out.println("a".matches(regex));
        System.out.println("b".matches(regex));
        System.out.println("c".matches(regex));
        System.out.println("d".matches(regex));
        System.out.println("1".matches(regex));
        System.out.println("%".matches(regex));
        System.out.println("10".matches(regex)); //"10"代表两个字符,返回false   
    }

    private static void demo1() {
        String regex = "[abc]";
        System.out.println("a".matches(regex));  
        System.out.println("b".matches(regex));
        System.out.println("c".matches(regex));
        System.out.println("d".matches(regex));
        System.out.println("1".matches(regex));
        System.out.println("%".matches(regex)); 
    }

}

预定义字符类演示

package com.heima.regex;

public class Demo3_Regex {

    /**
     * 预定义字符类 
    . 任何字符(与行结束符可能匹配也可能不匹配) 
    \d 数字:[0-9] 
    \D 非数字: [^0-9] 
    \s 空白字符:[ \t\n\x0B\f\r] 
    \S 非空白字符:[^\s] 
    \w 单词字符:[a-zA-Z_0-9] 
    \W 非单词字符:[^\w] 

     */
    public static void main(String[] args) {
        String regex1 =".";    //任意字符,单个字符
        String regex2 ="\\d";  //\代表转义字符,如果向表示\d的话,需要\\d
        String regex3 ="\\s";
        System.out.println(" ".matches(regex3)); //一个空格,true
        System.out.println("    ".matches(regex3)); //一个tab键,true
        System.out.println("    ".matches(regex3)); //四个空格,四个字符,false
    }

}

数量词

package com.heima.regex;

public class Demo4_Regex {

    /**
     * @param args
     */
    public static void main(String[] args) {
        String regx = "[abc]{5,15}";    //5-15次
    }

    private static void demo2() {
        String regex = "[abc]*";
        System.out.println("".matches(regex));
        System.out.println("abc".matches(regex));
        System.out.println("a".matches(regex));  //大于等于0次就可以了
    }

    private static void demo1() {
        String regex = "[abc]?";
        System.out.println("a".matches(regex));     //true
        System.out.println("b".matches(regex));     //true
        System.out.println("c".matches(regex));     //true
        System.out.println("d".matches(regex));     //不能是其他字符,false
        System.out.println("".matches(regex));      //一次也没有,true
    }

}

正则表达式的分割功能)

package com.heima.regex;

public class Demo5_Split {

    /**
     * @param args
     */
    public static void main(String[] args) {
        String s = "123.456.789";
        String[] arr = s.split("\\.");  //通过正则表达式切割字符串,这里匹配.字符需要\\.
        
        for (int i = 0; i < arr.length; i++) {
            System.out.println(arr[i]);
        }
        
    }

}

把给定字符串中的数字排序

package com.heima.test;

import java.util.Arrays;

public class Test1 {

    /**
     * * A:案例演示
     * 需求:我有如下一个字符串:”91 27 46 38 50”,请写代码实现最终输出结果是:”27 38 46 50 91”
     * 分析:
     * 1,将字符串切割成字符串数组
     * 2,将字符串转换成数字并将其储存在一个等长度的int数组中
     * 3,排序
     * 4,将排序后的结果遍历并拼接成一个字符串
     */
    public static void main(String[] args) {
        String s = "91 27 46 38 50";
        //1,将字符串切割成字符串数组
        String[] sArr = s.split(" ");
        //2,将字符串转换成数字并将其储存在一个等长度的int数组中
        int[] arr = new int[sArr.length];
        for (int i = 0; i < arr.length; i++) {
            arr[i] = Integer.parseInt(sArr[i]);     //将数组字符串转换成数字
        }
        //3,排序
        Arrays.sort(arr);
        //4,将排序后的结果遍历并拼接成一个字符串27 38 46 50 91
        /*这种方式会产生很多字符串对象,同时会把很多字符串对象当作垃圾回收
        String str = "";
        for (int i = 0; i < arr.length; i++) {
            if(i == arr.length - 1) {
                str = str + arr[i];
            }else {
                str = str + arr[i] + " ";
            }
        }   
        System.out.println(str);
        */
        StringBuilder sb = new StringBuilder();
        for (int i = 0; i < arr.length; i++) {
            if(i == arr.length - 1) {
                sb.append(arr[i]);
            }else {
                sb.append(arr[i] + " ");
            }
        }
        System.out.println(sb);
    }
}

正则表达式的替换功能

package com.heima.regex;

public class Demo6_ReplaceAll {

    /**
     * @param args
     */
    public static void main(String[] args) {
        String s = "wo123ai245667heima";
        String regex = "\\d";       //\\d代表的是数字
        String s2 = s.replaceAll(regex, "");
        System.out.println(s2);
    }

}

正则表达式的分组功能

        1     ((A)(B(C))) 
        2     (A 
        3     (B(C)) 
        4     (C) 
    
        组零始终代表整个表达式。
package com.heima.regex;

public class Demo7_Regex {

    /**
     * @param args
     */
    public static void main(String[] args) {
        //需求:我我....我...我.要...要要...要学....学学..学.编..编编.编.程.程.程..程
        //将字符串还原成:“我要学编程”。
        String s = "我我....我...我.要...要要...要学....学学..学.编..编编.编.程.程.程..";
        String s2 = s.replaceAll("\\.+", "");
        System.out.println(s2);
        String s3 = s2.replaceAll("(.)\\1+", "$1");     //$1代表第一组中的内容
        System.out.println(s3);
    }

    private static void demo2() {
        //需求:请按照叠词切割: "sdqqfgkkkhjppppkl"
        String s = "sdqqfgkkkhjppppkl";
        String regex = "(.)\\1+";       //+代表第一组出现一次到多次
        String[] arr = s.split(regex);
        
        for (int i = 0; i < arr.length; i++) {
            System.out.println(arr[i]);
        }
    }

    private static void demo1() {
        //叠词 快快乐乐,高高兴兴
        /*String regex = "(.)\\1(.)\\2";
        System.out.println("快快乐乐".matches(regex));//\\1代表第一组又出现一次
        System.out.println("快乐快乐".matches(regex));//\\2代表第二组又出现一次
        System.out.println("高高兴兴".matches(regex));
        System.out.println("快快快快".matches(regex));*/
        
        //叠词 高兴高兴,快乐快乐
        String regex2 = "(..)\\1";
        System.out.println("高兴高兴".matches(regex2));
        System.out.println("快乐快乐".matches(regex2));
        System.out.println("快快乐乐".matches(regex2));
    }

}

Pattern和Matcher的概述

package com.heima.regex;

import java.util.regex.Matcher;
import java.util.regex.Pattern;

public class Demo8_Pattrn {

    /**
     *  需求:把一个字符串中的手机号码获取出来
     */
    public static void main(String[] args) {
         String s = "我的手机号码是18988888888,曾经用过18987654321,还用过18812345678";
         String regex = "1[3578]\\d{9}";
         /*Pattern p = Pattern.compile(regex);
         Matcher m = p.matcher(s);
         boolean b = m.matches();
         System.out.println(b); //返回false*/
         Pattern p = Pattern.compile(regex);
         Matcher m = p.matcher(s);
         /*boolean b1 = m.find();
         System.out.println(b1);    //true
         String s1 = m.group();
         System.out.println(s1);    //先先find找到才有结果,否则会报错No match found
*/       
         while(m.find())    
             System.out.println(m.group()); 
         //18988888888
         //18987654321
         //18812345678
    }

    private static void demo1() {
        Pattern p = Pattern.compile("a*b"); //获取到正则表达式
         Matcher m = p.matcher("aaaaab");       //获取匹配器
         boolean b = m.matches();               //看是否能匹配,匹配就返回true
         System.out.println(b);
         
         System.out.println("aaaaab".matches("a*b")); //与上面的结果一致
    }

}

Math类概述和方法使用

package com.heima.otherclass;

public class Demo1_Math {

    /**
     * @param args
     */
    public static void main(String[] args) {
        System.out.println(Math.PI);
        System.out.println(Math.abs(-10));  //取绝对值
        //ceil天花板   //floor地板
        System.out.println(Math.ceil(-2.5));    //向上取值,结果是一个double
        System.out.println(Math.floor(-2.5));   //向下取值,结果是一个double
        //获取两个值中的最大值
        System.out.println(Math.max(20, 30));
        //前面的数是底数,后面的数是指数
        System.out.println(Math.pow(2, 3)); //2.0^3.0
        //生成0.0到1.0之间的所有小数,包括0.0,不包括1.0
        System.out.println(Math.random());
        //四舍五入
        System.out.println(Math.round(12.3f));
        System.out.println(Math.round(12.9f));
        //开平方
        System.out.println(Math.sqrt(4));
    }

}

Random类的概述和方法使用

package com.heima.otherclass;

import java.util.Random;

public class Demo2_Random {

    public static void main(String[] args) {
        Random r = new Random();
        
        for (int i = 0; i < 10; i++) {
            System.out.println(r.nextInt());
        }
        System.out.println("--------->");
        Random r2 = new Random(1000);
        
        int a = r2.nextInt();
        int b = r2.nextInt();
        
        System.out.println(a);
        System.out.println(b);
        System.out.println(r.nextInt(2));   //在0(包括)和指定值(不包括)之间均匀分布的int值
    }

}

System类的概述和方法使用

package com.heima.otherclass;

public class Demo3_System {

    
    public static void main(String[] args) {
        int[] src = {11,22,33,44,55};
        int[] dest = new int[8];
        System.arraycopy(src, 0, dest, 0, src.length);
        //System.arraycopy(src, srcPos, dest, destPos, length)
        /*
         * src源数组,srcPos源数组中的起始位置,dest目标数组, destPos目标数组中的起始位置, 
         * length要复制的数组元素的数量
         */
        for (int i = 0; i < dest.length; i++) {
            System.out.println(dest[i]);
        }
    }

    public static void demo3() {
        long start = System.currentTimeMillis();    //获取当前时间的毫秒值
        for (int i = 0; i < 1000; i++) {
            System.out.println("*");
        }
        long end = System.currentTimeMillis();
        System.out.println(end - start);    //程序运行时间,单位毫秒,1秒=1000毫秒
    }

    public static void demo2() {
        System.out.println(2222);
        System.exit(0);     //推出jvm(java虚拟机),非0状态是异常终止
        System.out.println(1111);
    }

    public static void demo1() {
        for (int i = 0; i < 100; i++) {
            new Demo();
            System.gc();    //运行垃圾回收器,相当于呼喊保洁阿姨
        }
    }

}

class Demo {    //在一个源文件中不允许定义两个用public修饰的类

    @Override
    public void finalize()  {
        System.out.println("垃圾被清扫了");
    }
    
}

BigInteger类的概述和方法使用

package com.heima.otherclass;

import java.math.BigInteger;

public class Demo4_BigInteger {

    /**
     * @param args
     */
    public static void main(String[] args) {
        BigInteger bi1 = new BigInteger("100");
        BigInteger bi2 = new BigInteger("2");
        System.out.println(bi1.add(bi2));       //+
        System.out.println(bi1.subtract(bi2));  //-
        System.out.println(bi1.multiply(bi2));  //*
        System.out.println(bi1.divide(bi2));    //除
        
        BigInteger[] arr = bi1.divideAndRemainder(bi2);//返回的数组里面依次为除数和余数
        for (int i = 0; i < arr.length; i++) {
            System.out.println(arr[i]);
        }
    }

}

BigDecimal类的概述和方法使用

package com.heima.otherclass;

import java.math.BigDecimal;

public class Demo5_BigDecimal {

    public static void main(String[] args) {
        //System.out.println(2.0 - 1.1);        //0.8999999999999999
        /*BigDecimal bd1 = new BigDecimal(2.0);
        BigDecimal bd2 = new BigDecimal(1.1);
        
        System.out.println(bd1.subtract(bd2));  //结果也不精确,所以在开发中不推荐
*/  
        /*BigDecimal bd1 = new BigDecimal("2.0");   //通过构造中传入字符串的方法
        BigDecimal bd2 = new BigDecimal("1.1"); //开发推荐
        
        System.out.println(bd1.subtract(bd2));*/
        BigDecimal bd1 = BigDecimal.valueOf(2.0);   //这种方式也推荐
        BigDecimal bd2 = BigDecimal.valueOf(1.1);
        System.out.println(bd1.subtract(bd2));

    }

}

Date类的概述和方法使用

A:Date类的概述(是util包下的,不能导入sql包的)
* 类 Date 表示特定的瞬间,精确到毫秒。

package com.heima.otherclass;

import java.util.Date;

public class Demo6_Date {

    public static void main(String[] args) {
        Date d1 = new Date();
        d1.setTime(1000);               //设置毫秒值,改变时间对象
        System.out.println(d1);
    }

    public static void demo2() {
        Date d1 = new Date();
        System.out.println(d1.getTime());               //通过时间对象获取当前时间毫秒值
        System.out.println(System.currentTimeMillis()); //通过系统类的方法获取当前时间毫秒值
    }

    public static void demo1() {
        Date d1 = new Date();       //如果没有传参数代表的是当前时间
        System.out.println(d1);
        
        Date d2 = new Date(0);      //如果构造方法中参数传为0代表的是1970年1月1日
        System.out.println(d2);     //通过毫秒值创建时间对象
    }

}

SimpleDateFormat类实现日期和字符串的相互转换

package com.heima.otherclass;

import java.text.DateFormat;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;

public class Demo7_SimpleDateFromat {

    /**
     * @param args
     * @throws ParseException 
     */
    public static void main(String[] args) throws ParseException {
        //将时间字符串转换成日期对象
        String str = "2000年08月08日 08:08:08";
        SimpleDateFormat sdf = new SimpleDateFormat("yyyy年MM月dd日 HH:mm:ss");
        Date d = sdf.parse(str);
        System.out.println(d);
    }

    public static void demo3() {
        Date d = new Date();                                
        SimpleDateFormat sdf = new SimpleDateFormat("yyyy年MM月dd日 HH:mm:ss");    //指定格式输出
        System.out.println(sdf.format(d));          //将日期对象转换成字符串
    }

    public static void demo2() {
        Date d = new Date();                                //获取当前时间对象
        SimpleDateFormat sdf = new SimpleDateFormat();      //创建日期格式化对象
        System.out.println(sdf.format(d));                  //结果18-11-5 下午9:00
    }

    public static void demo1() {
        //DateFormat df = new DateFormat();     //DateFormat是抽象类,不允许实例化
        DateFormat df1 = DateFormat.getDateInstance();//相当于父类引用指向子类对象,右边的方法返回一个子类对象
        //底层类似于DateFormat df1 = new SimpleDateFormat();
    }

}

你来到这个世界多少天案例

package com.heima.test;

import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;

public class Test2 {

  /**
   * @param args
   * @throws ParseException 
   */
  public static void main(String[] args) throws ParseException {
      //1,将生日字符串和今天字符串存在String类型的变量中
      String birthday = "1993年08月17日";
      String today = "2088年11月5日";
      //2,定义日期格式化对象
      SimpleDateFormat sdf = new SimpleDateFormat("yyyy年MM月dd日");
      //3,将日期字符串转换成日期对象
      Date d1 = sdf.parse(birthday);
      Date d2 = sdf.parse(today);
      //4,通过日期对象获取时间毫秒值
      long time = d2.getTime() - d1.getTime();
      //5,将两个时间毫秒值相减处以1000,再除以3600,再除以24
      System.out.println(time /1000 /3600 /24 /365);
  }

}

Calendar类的概述和获取日期的方法

A:Calendar类的概述
* Calendar 类是一个抽象类,它为特定瞬间与一组诸如 YEAR、MONTH、DAY_OF_MONTH、HOUR 等日历字段之间的转换提供了一些方法,并为操作日历字段(例如获得下星期的日期)提供了一些方法。

package com.heima.test;

import java.util.Calendar;

public class Demo9_Calender {

    /**
     * @param args
     */
    public static void main(String[] args) {
        Calendar c = Calendar.getInstance();        //父类引用指向子类对象
        c.add(Calendar.DAY_OF_WEEK, 1);             //对指定的字段进行加或者减
        c.set(Calendar.YEAR, 2000);                 //修改指定字段为后面的传入值
        c.set(2000, 8, 8);                          //修改指定字段依次为年月日,按下面的格式输出为2000年09月08日星期五,说明这里的月份会加一
        System.out.println(c.get(Calendar.YEAR) + "年" 
        + getNum((c.get(Calendar.MONTH)+1))
                + "月" + getNum(c.get(Calendar.DAY_OF_MONTH)) 
                + "日" + getWeek(c.get(Calendar.DAY_OF_WEEK)));
    }
    public static void demo1() {
        Calendar c = Calendar.getInstance();        //父类引用指向子类对象
        System.out.println(c.get(Calendar.YEAR));   //通过字段获取年
        System.out.println(c.get(Calendar.MONTH));  //通过字段获取月,但是月是从0开始编号的
        System.out.println(c.get(Calendar.DAY_OF_MONTH));   //月中的第几天
        System.out.println(c.get(Calendar.DAY_OF_WEEK));    //周日是第一天 
        
        System.out.println(c.get(Calendar.YEAR) + "年" + getNum((c.get(Calendar.MONTH)+1))
                + "月" + getNum(c.get(Calendar.DAY_OF_MONTH)) + "日" + getWeek(c.get(Calendar.DAY_OF_WEEK)));
    }
    //将星期储存在表中查询
    public static String getWeek(int week) {
        String[] arr = {"星期日","星期一","星期二","星期三","星期四","星期五","星期六"};
        return arr[week-1];
    }
    //如果是个位数前面补零。输入为int,返回一个字符串
    public static String getNum(int num) {
        /*if(num > 9) {
            return "" + num;
        } else {
            return "0" + num;
        }*/
        return num > 9 ? "" + num : "0" + num;
    }
}

如何获取任意年份是平年还是闰年

package com.heima.test;

import java.util.Calendar;
import java.util.Scanner;

public class Test3 {

    /**
     * @param args
     */
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        System.out.println("请输入年份,判断该年份是闰年还是平年");
        String line = sc.nextLine();            //录入数字字符串
        int year = Integer.parseInt(line);      //将数字字符串转换成数字
        boolean b = getYear(year);
        System.out.println(b);
    }

    private static boolean getYear(int year) {
        //2,创建Calendar c = Calendar.getInstance();
        Calendar c = Calendar.getInstance();
        //3.设置为那一年的3月1日
        c.set(year,2,1);
        //将日减去1
        c.add(Calendar.DAY_OF_MONTH,-1);
        //判断是否为29
        return c.get(Calendar.DAY_OF_MONTH) == 29;
    }

}

对象数组的概述和使用

package com.heima.collection;

import com.heima.bean.Student;

public class Demo1_Array {

    /**
     * @param args
     */
    public static void main(String[] args) {
        //int[] arr = new int[5];                   //创建基本数据类型数组
        Student[] arr = new Student[5];             //创建引用数据类型数组
        arr[0] = new Student("张三", 23);             //创建一个学生对象,存储在数组的第一个位置
        arr[1] = new Student("李四", 24);             //创建一个学生对象,存储在数组的第二个位置
        arr[2] = new Student("王五", 25);             //创建一个学生对象,存储在数组的第三个位置
        
        for(int i = 0; i < arr.length; i++) {
            System.out.println(arr[i]);
        }
    }

}
数组存储引用数据类型.png

集合的由来及集合继承体系图

Collection集合的基本功能测试

        boolean add(E e)
        boolean remove(Object o)
        void clear()
        boolean contains(Object o)
        boolean isEmpty()
        int size()
package com.heima.collection;

import java.util.ArrayList;
import java.util.Collection;

import com.heima.bean.Student;

@SuppressWarnings({ "rawtypes", "unchecked" })
public class Demo2_Collection {

    /*
     * add方法如果是List集合一直都返回true,因为List集合中是可以存储重复元素的
     * 如果是Set集合当存储重复元素的时候,就会返回false
     */
    public static void main(String[] args) {
        Collection c = new ArrayList();
        c.add("a");
        c.add("b");
        c.add("c");
        c.add("d");
        //c.remove("b");                //删除指定元素
        //c.clear();                        //清空集合
        //System.out.println(c.contains("b"));  //判断是否包含
        //System.out.println(c.isEmpty());      //判断是否为空
        System.out.println(c.size());           //获取集合元素个数  
        System.out.println(c);
    }

    public static void demo1() {
        Collection c = new ArrayList();             //父类引用指向子类对象
        boolean b1 = c.add("abc");
        boolean b2 = c.add(true);                   //自动装箱new Boolean(true);
        boolean b3 = c.add(100);
        boolean b4 = c.add(new Student("张三",23));
        boolean b5 = c.add("abc");
        
        System.out.println(b1);
        System.out.println(b2);
        System.out.println(b3);
        System.out.println(b4);
        System.out.println(b5);
        
        System.out.println(c);  //ArrayList的父类的父类重写了toString方法,
        //所以在打印对象的引用的时候,输出的结果不是Object类中toString的结果
    }

}

集合的遍历之集合转数组遍历

package com.heima.collection;

import java.util.ArrayList;
import java.util.Collection;

import com.heima.bean.Student;

@SuppressWarnings({ "rawtypes", "unchecked" })
public class Demo3_Collection {
    public static void main(String[] args) {
        Collection c = new ArrayList();     
        c.add("a");                     //父类引用指向子类对象,编译看左边,运行看右边
        c.add(true);                    //多态
        c.add(1);                       //多态不能使用子特有的行为,向下转型就可以使用了。注意这个特有
        c.add(new Student("张三",23));    //Object obj = new Student("张三",23);        
        //Student [name=张三, age=23],重写了toString方法,编译看左边,运行看右边
        Object[] arr = c.toArray();                 //将集合转换成数组
        for(int i = 0; i < arr.length; i++) {
            System.out.println(arr[i]);
        }
    }

}

Collection集合的带All功能测试

/*
boolean addAll(Collection c)
boolean removeAll(Collection c)
boolean containsAll(Collection c)
boolean retainAll(Collection c)
*/
package com.heima.collection;

import java.util.ArrayList;
import java.util.Collection;

public class Demo4_CollectionAll {

    public static void main(String[] args) {
        Collection c1 = new ArrayList();
        c1.add("a");
        c1.add("b");
        c1.add("c");
        c1.add("d");
        
        Collection c2 = new ArrayList();
        c2.add("a");
        c2.add("b");
        c2.add("z");
                
        boolean b = c1.retainAll(c2);   //取交集
        System.out.println(b);          //取交集,如果调用的集合改变就返回true,如果不变则返回false
        System.out.println(c1);         //[a, b]
    }

    public static void demo3() {
        Collection c1 = new ArrayList();
        c1.add("a");
        c1.add("b");
        c1.add("c");
        c1.add("d");
        
        Collection c2 = new ArrayList();
        c2.add("a");
        c2.add("b");
        //c2.add("b");      //有重复的会返回true,
        c2.add("z");        //不同会返回false
        
        Boolean b = c1.containsAll(c2);         //判断调用的集合是否包含传入的集合
        System.out.println(b);
    }

    public static void demo2() {
        Collection c1 = new ArrayList();
        c1.add("a");
        c1.add("b");
        c1.add("c");
        c1.add("d");
        
        Collection c2 = new ArrayList();
        c2.add("a");
        c2.add("b");
        c2.add("z");
        
        boolean b = c1.removeAll(c2);//删除成功返回true,且删除的是交集,即只删除两个集合相同的部分
        System.out.println(b);
        System.out.println(c1);
    }

    public static void demo1() {
        Collection c1 = new ArrayList();
        c1.add("a");
        c1.add("b");
        c1.add("c");
        c1.add("d");
        
        Collection c2 = new ArrayList();        //alt+shift+r一起改名字
        c2.add("e");
        c2.add("f");
        c2.add("g");
        c2.add("h");
        
        c1.addAll(c2);      //将c2中的每一个元素添加到c1中
        c1.add(c2);         //将c2看成一个对象添加到c1中
        System.out.println(c1);//[a, b, c, d, e, f, g, h, [e, f, g, h]]
    }

}

集合的遍历之迭代器遍历

package com.heima.collection;

import java.util.ArrayList;
import java.util.Collection;
import java.util.Iterator;

import com.heima.bean.Student;

public class Demo5_Iterator {

    /**
     * @param args
     */
    public static void main(String[] args) {
        Collection c = new ArrayList();
        c.add(new Student("张三",23));        //Object obj = new Student("张三",23);
        c.add(new Student("李四",24));
        c.add(new Student("王五",25));
        c.add(new Student("赵六",26));
        
        //获取迭代器
        Iterator it = c.iterator();
        while(it.hasNext()) {
            //System.out.println(it.next());
            Student s = (Student)it.next();     //向下转型
            System.out.println(s.getName());
        }
    }

    public static void demo1() {
        Collection c = new ArrayList();
        c.add("a");
        c.add("b");
        c.add("c");
        c.add("d");
        
        //对集合中的元素迭代(遍历)
        Iterator it = c.iterator();             //获取迭代器
        /*boolean b1 = it.hasNext();            //判断集合中是否有元素,有就返回true
        Object obj1 = it.next();            
        System.out.println(b1);
        System.out.println(obj1);*/
        
        while(it.hasNext()) {
            System.out.println(it.next());
        }
    }

}
上一篇下一篇

猜你喜欢

热点阅读