全国统一学习专线

零基础编程培训系列JAVA入门课程第十二讲Java工具包简介

logo
来源:七品教育

2024-03-26|已帮助:65

进入 >

【简介,您正在阅读的是软件开发教程系列中的Java入门基础课程。这是一个系列教程,你可以点击作者的头像查看文章列表。用手指注意,跟熊猫学编程。】

课程目标:

掌握日期相关对象、用法、随机函数用法、常用集合集合用法、常用映射结构用法。说到Java编程,就不得不提到Java.util包。

util包包含许多实用的工具类和数据结构,如日期、日历和生成随机数的Random。还有两个实用的接口,收藏和地图。

日期和日历

Date

Date是一个日期类。用于表示日期对象,实例化方法如下:

Calendar cal=Calendar.getInstance();

Date date=cal.getTime();

在一般的程序中,你通常需要格式化的日期显示,可以用SimpleDateFormat来格式化。

SimpleDateFormat formatter=new SimpleDateFormat('yyyy-MM-dd HH:mm:ss');

String dateString=formatter.format(date);

还可以将字符串类型的日期转换为Date对象。

string strDate=" 2018-01-23 ";

SimpleDateFormat sdf=new SimpleDateFormat('yyyy-MM-dd');

try {

Date date=sdf.parse(strDate);

} catch (ParseException e) {

e.printStackTrace();

}

此外,您可以使用Date来比较两个日期。

Date对象有一个compareTo(Date date1)方法,如果日期相同,则返回0;如果日期大于给定日期,则返回0;如果日期小于给定日期,则返回0。

Date类中的很多方法现在都不推荐了,都被Calendar代替了。让我们继续来看看他们。

Calender

也就是说,calendar类是Java中用来处理日期的类。日期类型在程序中非常有用,因为Java要支持多平台、多地域和国际化,所以内部设计比较复杂。但是对于开发者来说,这些你都不用担心。

你只需要用Calender来处理,很多细节都封装好了。

Calendar cal=Calendar.getInstance();

获取默认属性的对象引用。

Cal.get (calendar. Year); //Get the current year

Cal.get (calendar. Month); //Get the current month

请注意,这里得到的月份将比实际月份少1。别问我为什么,月份从0开始算。

Cal.get (calendar. Month day); //Get the current day

cal.get(日历。一天中的小时);//获取当前小时,24小时制。

cal.get(日历。分钟);//获取当前分钟数

Cal.get (calendar. Second); //get the current seconds

cal.getActualMaximum(日历。日期);//获取给定日期的最后一天非常有用。

您还可以使用Calendar获取特定日期,例如,您希望获取12月1日上午8: 00的日期。

Calendar cal=Calendar.getInstance();

cal.set(Calendar.MONTH,11);

cal.set(Calendar.DAY_OF_MONTH,1);

cal.set(Calendar.HOUR_OF_DAY,8);

Date date=cal.getTime();

Calenlar也可以计算日期。

cal.add(日历。月,1);//将当前日期和月份加1。

Cal.add (calendar. Month day, 1); //Add one to the current date and days.

Relationship between date and calendar.

你可以通过日历获取日期对象。

Calendar cal=Calendar.getInstance();

Date date=cal.getTime();

您也可以使用Date来设置当前的日历对象。

cal .setTime(date);

在日期和日历中有许多有用的功能,所以你可以自己查询JDK文档。

随机数字

Java主要用Random来处理随机数。Random可以生成各种类型的随机数,比如int,long,float,double等等。

注意:java.lang.Math类也可以随时生成,但是只能生成double类型。

看下面这个例子。

Random random=new Random();

random . nextint();//获取int随机数

random . nextint(100);//获取100以内的随机数,取值范围0-99。

random . nextlong(); //get a long random number

random . next float();//获取浮点随机数,取值范围0.0-1.0,不含1.0。

random . next double();//获取dobule随机数,取值范围0.00-1.00,不含1.00。

Collection collection

集合是Java中非常重要的集合接口。那什么是收藏?集合是一种结构,其中可以存储一系列数据对象。在编程时,我们可以很容易地运行这些结构来实现我们的功能。

集合是一个接口,主要依靠三个子接口来实现集合功能。一个是List,一个是Set,一个是Queue。下面分别介绍一下。

List

List接口,它的后台实现是一个对象数组,它的特点是存储的数据是有序的,允许有重复的值。它的主要实现类是ArrayList、linkedList和Vector(线程安全)。

ArryList是最常用的有序队列数据结构,其特点是快速遍历、容量无限、带下标的索引和快速访问。但是添加和删除元素的性能不如linkedList高效。注意,List不是线程安全的,

不要在多线程环境中使用。

看看这个例子

List dataList=new ArrayList();

dataList.add('1');

dataList.add('2');

for(int i=0;i

System.out.println(dataList.get(i));

}

linkedList的内部实现是双向链表,特点是添加、修改、删除不影响性能,但遍历性能没有List高。

Vector类似于List,但是Vector是线程安全的。可以在多线程环境下安全使用。缺点性能开销大于列表。一般情况下,首选ArrayList

Set

集合的特征是不可重复的队列,重复的对象不能放入集合中。常用的集合类有HashSet、linkedHashSet和TreeSet (sortable)。

HashSet

让我们看看下面的例子。

String str='aa';

HashSet set=new HashSet();

set.add(str);

set.add(str);

System.out.println(set.size());

运行结果为1,因为HashSet不能添加重复数据,如果重复添加同一个对象,其值将被替换。

linkedHashSet

linkedHashSet在HashSet中增加了pre和next两个指针,分别指向上一个元素和下一个元素,因为在添加和删除元素时性能更好。

TreeSet

存储在TreeSet中的元素必须实现Comparable接口,该接口有一个comareTo方法,主要用于排序,因为TreeSet是一个有序集合。

Queue

也实现了Collection,本质是是一个先入先出(FIFO)的数据结构

Queue有点小复杂,用的较少,它的子类一般是配合多线程来使用,初学者不建议使用。这里暂时不介绍,有兴趣的同学可以自行百度一下。

Map

Map是个比较有用的接口,是按键值即key对应value的方式来存放对象数据。这个数据结在我们的程序中会经常用到。

常用的实现类有HashMap,HashTable

注意:Map中不能包含相同的key,每个key只能映射一个value。如果放入重复的key会覆盖之前的value对象。

看例子:

Map map=new HashMap();

map.put('1','张三');

map.put('2','李四');

System.out.println(map.get('1'));//通过'1'这个key来找到'张三'这个对象,并打印。

System.out.println(map.get('1'));//通过'2'这个key来找到'张三'这个对象,并打印。

HashMap,HashTable区别

HashMap的效率比HashTable高,但它不能在多线程环境中运行。如果要使用非要加同步锁。HashTable本质上就是HashMap,只是在put,get,还有其它一些方法上加上同步锁,

一般多在多线程环境。

知识点总结:

处理日期用Date和Calendar处理随机数用RandomList是高效数组,有序但不支持多线程,Vector可适用于多线程环境Set是不可重复的队列。Map是键值对结构,HashMap高效,

但不可能用于多线程环境。HashTable可适用于多线程。课后作业:

1.List,Set,Map每个类都写一个例子,实例化对象并添加3个字符串到结构中,然后用循环来遍历每个结构储存的值。

2.打印一个1到99之间的随机数。

3.写一个日期工具类,里面包含两个方法,一个是把日期类型转换成字符串,另一个是把字符串类型日期转成Date类型。

【原创教程】欢迎关注,每天2小时,只要你跟着学,就能轻松掌握编程技术,我是熊猫,明天见。如果您觉的教程有用,可以动动手,转发一下,让更多人受益,谢谢大家。

以上是七品教育整理的零基础编程培训系列JAVA入门课程第十二讲Java工具包简介全部内容。