Java 核心库(1)

LocalDataTime类

        // 1.获取当前日期信息并打印
        LocalDate now = LocalDate.now();
        System.out.println("获取到的当前日期是:" + now);
        // 2.获取当前时间信息并打印
        LocalTime now1 = LocalTime.now();
        System.out.println("获取到的当前时间是:" + now1);
        // 3.获取当前日期时间信息并打印,使用最多
        LocalDateTime now2 = LocalDateTime.now();
        System.out.println("获取到的当前日期时间是:" + now2);

        System.out.println("-------------------------------------------------------");
        // 4.使用参数指定的年月日时分秒信息来获取对象并打印
        // 使用ctrl+F12来查找指定的方法
        LocalDateTime of = LocalDateTime.of(2008, 8, 8, 20, 8, 8);
        System.out.println("指定的日期时间是:" + of); // 自动调用toString方法
        System.out.println("获取到的年是:" + of.getYear()); // 2008
        System.out.println("获取到的月是:" + of.getMonthValue()); // 8
        System.out.println("获取到的日是:" + of.getDayOfMonth()); // 8
        System.out.println("获取到的时是:" + of.getHour()); // 20
        System.out.println("获取到的分是:" + of.getMinute()); // 8
        System.out.println("获取到的秒是:" + of.getSecond()); // 8

集合类库

在这里插入图片描述

基础方法

创建对象

        // 接口类型的引用指向实现类的对象,形成了多态
        Collection c1 = new ArrayList();

add()

        boolean b1 = c1.add(new String("one"));
        b1 = c1.add(Integer.valueOf(2));
        b1 = c1.add(new Person("zhangfei", 30));

addAll():将集合c2中的元素一个一个依次添加到集合c1中

        b1 = c1.addAll(c2);

contain():判断集合中是否包含参数指定的单个元素

        b1 = c1.contains(new String("one"));
    // contains方法的工作原理是:Objects.equals(o, e),其中o代表contains方法的形式参数,e代表集合中的每个元素
    // 也就是contains的工作原理就是 拿着参数对象与集合中已有的元素依次进行比较,比较的方式调用Objects中的equals方法
    // 而该方法equals的工作原理如下:
    /*
    public static boolean equals(Object a, Object b) {    其中a代表Person对象,b代表集合中已有的对象
        return (a == b) || (a != null && a.equals(b));
        元素包含的第一种方式就是:Person对象与集合中已有对象的地址相同
                 第二种方式就是:Person对象不为空,则Person对象调用equals方法与集合中已有元素相等
    }
    */
    // 当Person类中没有重写equals方法时,则调用从Object类中继承下来的equals方法,比较两个对象的地址  false
    // 当Person类中重写equals方法后,则调用重写以后的版本,比较两个对象的内容  true

containAll():判断集合c1中是否包含集合c3中的所有元素

        b1 = c1.containsAll(c3);

遍历方式一: 自动调用toString方法

        System.out.println("c1 = " + c1); // [one, 2, Person{name='zhangfei', age=30}]

遍历方式二:使用迭代器来遍历集合中的所有元素 更加灵活(迭代器自带的方法以及用法)

迭代器自带的方法

        // 2.2 判断是否有元素可以访问
        System.out.println(iterator1.hasNext()); // true
        // 2.3 取出一个元素并指向下一个
        System.out.println("获取到的元素是:" + iterator1.next()); // one
            if("one".equals(obj)) {
                iterator1.remove();  //使用迭代器的remove方法删除元素没问题
            }

迭代器的用法

        // 2.1 获取当前集合中的迭代器对象
        Iterator iterator1 = c1.iterator();
        // 3.使用迭代器来模拟toString方法的打印效果
        StringBuilder sb1 = new StringBuilder();
        sb1.append("[");
        while (iterator1.hasNext()) {
            Object obj = iterator1.next();
            // 当获取的元素是最后一个元素时,则拼接元素加中括号
            if (!iterator1.hasNext()) {
                sb1.append(obj).append("]");
            } else {
                // 否则拼接元素加逗号加空格
                sb1.append(obj).append(",").append(" ");
            }
        }

注意

        iterator1 = c1.iterator();
        while (iterator1.hasNext()) {
            Object obj = iterator1.next();
            if("one".equals(obj)) {
                iterator1.remove();  //使用迭代器的remove方法删除元素没问题
                //c1.remove(obj); // 使用集合的remove方法编译ok,运行发生ConcurrentModificationException并发修改异常
            }
        }

此处利用move方法在迭代器中删除单个元素会引发迭代器指针错误的异常

foreach循环(for循环强化版)

        // 5.使用 for each结构实现集合和数组中元素的遍历  代码简单且方法灵活
        // 由调试源码可知:该方式确实是迭代器的简化版
        for (Object obj : c1) {
            System.out.println("取出来的元素是:" + obj);
        }

c1为Collection类型集合,obj为集合中取出元素

        int[] arr = new int[] {11, 22, 33, 44, 55};
        for (int i : arr) {
            System.out.println("i = " + i);
            i = 66; 
        }//[11,22,33,44,55]

修改局部变量i的数值,并不是修改数组中元素的数值

两集合取交集

        System.out.println("c2 = " + c2); // [three, 4]
        System.out.println("c3 = " + c3); // [4, five]
        // 也就是让集合自己和自己取交集,还是自己,也就是当前集合中的元素没有发生改变
        b1 = c2.retainAll(c2);

remove()
removeAll()

        // remove方法的工作原理:Objects.equals(o, e)
        b1 = c1.remove(new Person("zhangfei", 30);

实现集合和数组类型之间的转换
通常认为:集合是用于取代数组的结构

        // 实现集合向数组类型的转换
        Object[] objects = c5.toArray();
        // 打印数组中的所有元素
        System.out.println("数组中的元素有:" + Arrays.toString(objects)); // [1, 2, 3]
        // 实现数组类型到集合类型的转换
        Collection objects1 = Arrays.asList(objects);
        System.out.println("集合中的元素有:" + objects1); // [1, 2, 3]

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值