Java学习2-日期类和Collection集合

Java学习2-日期类和Collection集合

一、日期类

1.date类

1.1 构造方法

date类用来获取时间,将毫秒值转化为时间。常用构造方法有如下:

  • public Date():分配Date对象并初始化此对象,以表示分配它的时间(精确到毫秒)。
  • public Date(long date):分配Date对象并初始化此对象,以表示自从标准基准时间(称为“历元(epoch)”,即1970年1月1日00:00:00 GMT)以来的指定毫秒数。

    无参构造可以获得当前的系统时间,有参构造根据你传入的毫秒值来获得相应的时间。

1.2 常用方法

  • public long getTime() 把日期对象转换成对应的时间毫秒值。

    import java.util.Date;
    
    public class Demo01Date {    public static void main(String[] args) {        Date date1 = new Date();        Date date2 = new Date(1);                System.out.println(date1);//Fri Aug 03 10:53:06 CST 2018        System.out.println(date2);//Thu Jan 01 08:00:00 CST 1970
    
            System.out.println(date1.getTime());//1533264786720    }}

2.DateFormat类

DateFormat类是一个抽象类,它有一个子类SimpleDateFormat,用来把Date类型的日期和字符串类型的日期按照指定格式进行相互转换。

2.1 构造方法

public SimpleDateFormat(String pattern):用给定的模式和默认语言环境的日期格式符号构造SimpleDateFormat。

常用的日期格式符号

字母(区分大小写) 含义
y
M
d
H
m
s

2.2 常用方法

  • public String format(Date date):将Date对象格式化为字符串。
  • public Date parse(String source):将字符串解析为Date对象。
import java.text.DateFormat;import java.text.ParseException;import java.text.SimpleDateFormat;import java.util.Date;

public class Demo02DateFormat {    public static void main(String[] args) throws ParseException {        DateFormat dtf = new SimpleDateFormat("yyyy年MM月dd日  HH时mm分ss秒");        String str = dtf.format(new Date());        System.out.println(str);//2018年08月03日  11时20分12秒

        System.out.println(dtf.parse(str));//Fri Aug 03 11:20:12 CST 2018    }}

[注意:在使用parse方法时,需要进行异常抛出。]    DateFormat dtf = new SimpleDateFormat("yyyy年MM月dd日  HH时mm分ss秒");使用了多态,也可将DateFormat改为SimpleDateFormat.

3.Calendar类

Calendar为抽象类,由于语言敏感性,Calendar类在创建对象时并非直接创建,而是通过静态方法创建,返回子类对象。可以用来获取年月日,星期几等。

3.1 获取对象方法

  • public static Calendar getInstance():使用默认时区和语言环境获得一个日历

3.2 常用方法

  • public int get(int field):返回给定日历字段的值。
  • public void set(int field, int value):将给定的日历字段设置为给定值。
  • public abstract void add(int field, int amount):根据日历的规则,为给定的日历字段添加或减去指定的时间量。
  • public Date getTime():返回一个表示此Calendar时间值(从历元到现在的毫秒偏移量)的Date对象。

    字段值含义:

/*求出给定日期是星期几 */

import java.util.Calendar;

public class Demo01 {    public static void main(String[] args) {        Calendar cal = Calendar.getInstance();

        //西方国家月份0-11,一星期从周日开始        cal.set(Calendar.YEAR, 2018);        cal.set(Calendar.MONTH, 7);   //代表中国的8月份        cal.set(Calendar.DATE, 1);

        int year = cal.get(Calendar.YEAR);        int month = cal.get(Calendar.MONTH) + 1;        int date = cal.get(Calendar.DATE);        int week = cal.get(Calendar.DAY_OF_WEEK);   //week为4,代表中国的星期3        System.out.println(year+"年"+month+"月"+date+"日是星期"+getWeek(week));    }

    //获取数字周几对应的汉字    public static char getWeek(int week) {        char[] chs = {' ', '日', '一', '二', '三', '四', '五', '六'};        return chs[week];    }}

二、Collection集合

集合按照其存储结构可以分为两大类,分别是单列集合Collection和双列集合Map。Collection是单列集合类的跟接口,用于存储一系列符合某种规则的元素,它有两个重要的子接口,分别是List、Set。List的特点是元素有序、元素可重复。Set的特点是元素无序,而且不可重复。接口的主要实现类如下:

1.Collection常用方法

  • public boolean add(E e):  把给定的对象添加到当前集合中 。
  • public void clear() :清空集合中所有的元素。
  • public boolean remove(E e): 把给定的对象在当前集合中删除。
  • public boolean contains(E e): 判断当前集合中是否包含给定的对象。
  • public boolean isEmpty(): 判断当前集合是否为空。
  • public int size(): 返回集合中元素的个数。
  • public Object[] toArray(): 把集合中的元素,存储到数组中。
import java.util.ArrayList;import java.util.Collection;

public class Demo02Collection {    public static void main(String[] args) {        Collection<String> coll = new ArrayList<>();        coll.add("曹操");        coll.add("刘备");        coll.add("孙权");        boolean flag1 = coll.add("司马懿");//返回布尔值

        for (String s : coll) {            System.out.print(s + "  ");        }        System.out.println();

        boolean flag2 = coll.remove("司马懿");//删除指定对象,返回布尔值        for (String s : coll) {            System.out.print(s + "  ");        }        System.out.println();

        boolean flag3 = coll.contains("孙权");//判断集合是否包含该对象

        Object[] objects = coll.toArray();//将集合转化为Object[]数组        System.out.println("转化为数组后遍历:");        for (Object o : objects) {            System.out.print(o + "  ");        }        System.out.println();

        coll.clear();//清空集合        boolean flag4 = coll.isEmpty();//判断集合是否为空        System.out.println(flag4);    }}

[Collection<String> coll = new ArrayList<>();]    用Collection子接口的List的实现类ArrayList来创建对象,体现多态性

2.Iterator迭代器

2.1 常用方法

Iterator迭代器主要用来遍历集合,遍历之前先获取该集合的迭代器。iterator()方法获得迭代器对象,然后使用hashNext()方法判断集合中是否存在下一个元素,如果存在,则调用next()方法将元素取出,否则说明已到达了集合末尾,停止遍历元素。

  • public Iterator iterator(): 获取集合对应的迭代器,用来遍历集合中的元素的。
  • public E next():返回迭代的下一个元素。
  • public boolean hasNext():如果仍有元素可以迭代,则返回 true。
import java.util.ArrayList;import java.util.Collection;import java.util.Iterator;

public class Demo01 {    public static void main(String[] args) {        Collection<String> c = new ArrayList<>();        c.add("曹操");        c.add("刘备");        c.add("孙权");

        Iterator<String> it = c.iterator();//创建集合对象的迭代器        while (it.hasNext()) {  //判断下一个元素是否为空            System.out.println(it.next());  //不为空输出元素        }    }}

3.增强for循环

增强for循环(也称for each循环)是JDK1.5以后出来的一个高级for循环,专门用来遍历数组和集合的。它的内部原理其实是个Iterator迭代器,所以在遍历的过程中,不能对集合中的元素进行增删操作。

格式如下:

for(元素的数据类型  变量 : Collection集合or数组){    //写操作代码}
import java.util.ArrayList;import java.util.Collection;

/*增强for循环,只能遍历,不能改动数值,底层用的也是迭代器 */public class Demo02Foreach {    public static void main(String[] args) {        Collection<String> c = new ArrayList<>();        c.add("曹操");        c.add("刘备");        c.add("孙权");

        for (String s:c) {            System.out.println(s);        }

    }}

4.泛型

泛型:当创建集合对象时,在<>中填写的引用数据类型,用来限制数据的类型,不添加泛型时,集合中既能存储字符串,也能存储数字等。在迭代遍历时,要进行数据类型强制转换,可能出现ClassCastException错误,使用泛型能够避免这种错误。

1.定义含有泛型的类

格式:

修饰符 class 类名<代表泛型的变量> {  }

创建类时,加入泛型,创建对象时,确定具体的数据类型。

public class Person<E> {    private E name;

    public Person(E name) {        this.name = name;    }

    public void show(E smallName) {        System.out.println("名字为:" + name + ",小名为:" + smallName);    }}

public class Demo01 {    public static void main(String[] args) {        Person<String> p = new Person<>("张三");        p.show("狗娃");   //名字为:张三,小名为:狗娃

    }}

2.定义含有泛型的方法

格式:

修饰符 <代表泛型的变量> 返回值类型 方法名(参数){  }

创建方法时,加入泛型,根据调用方法时传的参数类型,确定具体的数据类型。

public class Person{    private String name;

    public Person(String name) {        this.name = name;    }

    public <E> void show(E smallName) {        System.out.println("名字为:" + name + ",小名为:" + smallName);    }}

public class Demo01 {    public static void main(String[] args) {        Person p = new Person("张三");        p.show("狗娃");   //名字为:张三,小名为:狗娃    }}

原文地址:http://blog.51cto.com/13570211/2154134

时间: 2024-08-13 16:47:54

Java学习2-日期类和Collection集合的相关文章

Java学习笔记_25_Collections类

25.Collections类: Collections类是一个工具类,用来对集合进行操作,它主要是提供一些排序算法,包括随机排序.反相排序等. Collections类提供了一些静态方法,实现了基于List容器的一些常用算法. Collections的一些方法列表: · void sort(List): 对List内的元素进行排序. · void shuffle(List): 对List内的元素随机排序. · void reverse(List): 对List内的元素进行逆序排列. · voi

java学习一目了然&mdash;&mdash;File类文件处理

java学习一目了然--File类文件处理 File类(java.io.File) 构造函数: File(String path) File(String parent,String child) File(File parent,String child) 创建文件: boolean createNewFile(); 创建文件夹: boolean mkdir(); 用于创建一层未定义文件夹 boolean mkdirs(); 用于创建多层未定义文件夹,相当于多个mkdir() 删除文件/文件夹

Java学习笔记——File类之文件管理和读写操作、下载图片

Java学习笔记——File类之文件管理和读写操作.下载图片 File类的总结: 1.文件和文件夹的创建 2.文件的读取 3.文件的写入 4.文件的复制(字符流.字节流.处理流) 5.以图片地址下载图片 文件和文件夹 相关函数 (boolean) mkdir() 创建此抽象路径名指定的目录  (boolean) mkdirs() 创建此抽象路径名指定的目录,包括所有必需但不存在的父目录. (boolean) delete() 删除此抽象路径名表示的文件或目录 (boolean) createNe

Java学习笔记_19_String类

19.String类: 1>String类的构造方法: · 利用字符串构造一个字符串对象: String str = "HelloWorld": · 无参构造一个字符串对象: String str = new String(); · 传递参数生成一个字符串对象: String str = new String("HelloWorld"); · 由字符数组生成一个字符串对象: String str = new String(char s[ ]); · 由字符数组

疯狂Java学习笔记(36)-----------Set集合

Set集合 类似于一个罐子,丢进"Set",集合里的过个对象之间没有明显的顺序. Set集合与Collection集合基本上完全一样,他没有提供任何额外的方法. 实际上Set就是Collection,只是行为略有不同,Set不允许包含重复元素.允许包含值为null的元素,但最多只能有一个null元素. 常用方法 按照定义,Set 接口继承 Collection 接口,所有原始方法都是现成的,没有引入新方法.具体的 Set 实现类依赖添加的对象的 equals() 方法来检查等同性. 各

Java学习笔记1——类和对象

面向对象 对象:万物皆对象 面向对象 类:模子,属性+方法,类是对象的类型,是具有相同属性和方法的一组对象的集合 对象属性:对象拥有的各种特征,"对象有什么" 对象方法:对象执行的操作,"对象能干什么" 类与对象的关系/区别:类是抽象的,仅仅是模版:对象是看得到,摸得着的具体实体.例如:'手机'类,对象为iPhone6,Lumia920 Java中的类 定义类:Java程序都以类class为组织单元 创建一个对象 //1.定义一个类 public class Tel

java学习笔记——日期处理

获取系统当前时间使用:java.util.Date类,而这个Date的构造方法如下: 无参构造:public Date() 有参构造:public Date(long date) 第一个实例: import java.util.*; public class DateDemo { public static void main(String[] args) { // TODO Auto-generated method stub Date da=new Date(); System.out.pr

黑马程序员——java学习8(166-总结)——集合

1.集合 存储对象的方式 1.1.区别于数组 (1)集合长度可变,数组长度固定 (2)集合只能存对象,数组存储基本数据类型 同:存的都是地址, 1.2.CPUD 1.3.迭代器(内部类比作抓娃娃机,迭代过程比作爪子,爪子各不相同,功能有共性,都在机器内部) 集合取出元素的方式 1 import java.util.*; 2 class CollectionDemo 3 { 4 public static void main(String[] args) 5 { 6 7 method_get();

Java学习笔记—复用类

复用代码是Java众多引人注目的功能之一. 一般而言,实现代码重用java提供了两种方式:组合以及继承. 组合:新的类由现有类的对象所组成.(复用现有代码的功能,而非它的形式) 继承:按照现有类的类型组建新类.(在不改变现有类的基础上,复用现有类的形式并在其中添加新代码). 组合 class Engine{ public void start(){} public void stop(){} } class Door{ public void open(){} public void close