奥鹏易百

 找回密码
 立即注册

扫一扫,访问微社区

QQ登录

只需一步,快速开始

帮助中心知识拓展客服QQ 515224986
查看: 415|回复: 0

大工20秋《java程序设计》辅导资料九

[复制链接]

1万

主题

4

回帖

2万

积分

论坛元老

积分
28638
发表于 2021-3-7 15:01:21 | 显示全部楼层 |阅读模式
扫码加微信
Java程序设计辅导资料九主    题:第四章Java.util包中的工具类库(课件)
“不忘初心、牢记使命”主题理论学习:
每周文摘:“我们既要绿水青山,也要金山银山。宁要绿水青山,不要金山银山,而且绿水青山就是金山银山。”要按照绿色发展理念,树立大局观、长远观、整体观,坚持保护优先,坚持节约资源和保护环境的基本国策,把生态文明建设融入经济建设、政治建设、文化建设、社会建设各方面和全过程,建设美丽中国,努力开创社会主义生态文明新时代。
摘选自《习近平总书记系列重要讲话读本》
内    容:
我们这周主要学习《Java程序设计》这门课程的第4章第4节关于Java.util包中的工具类库的详细介绍以及依次相关内容。希望通过下面的内容能使同学们对Java语言的Java.util包有进一步的了解。
知识要点:
Java.util介绍
日期类
Arrays数组类
Map集合类
各个类的特点
重点与难点:
重点:Arrays数组类的功能、Java.util包含的类
难点:Map集合类的功能Java.util中的工具类库及日期类
软件包 java.util包含集合框架、遗留的 collection 类、事件模型、日期和时间设施、国际化和各种实用工具类(字符串标记生成器、随机数生成器和位数组)。
日期类
java.util包的日期类包括Date、Calendar和GregorianCalendar,他们描述日期和时间,提供对日期值的许多操作方法,如获得当前日期,比较两个日期,判断日期的先后等。
Java以一个长整形表示一个日期,该长整形表示从格林威治时间1970-1-1 00:00:00开始至某时刻的累计毫秒数。System.currentTimeMillis()方法返回表示当前日期和时间的长整数。
Date类
Date日期类部分声明如下:
public class Date extends Object implements java.io.Serializable,Cloneable,Comparable<Date>{
public Date(){
  this(System.currentTimeMillis());
}
public Date(long date)
public void setTime(long time)
public long getTime()
public int compare(Date date)
}
Calendar类
Calendar日期类部分声明如下:
public abstract class Calendar implements Serializable,Cloneable,Comparable<Calendar>{
public static final int YEAR
public static final int MONTH
public static final int DATE
public static final int HOUR
public static final int MINUTE
public static final int SECOND
public static final int DAY_OF_WEEKpublic static Calendar getInstance()
public int get(int field)
public final Date getTime()
public final void setTime(Date date)
public final void set(int year,int month,int date)
public final void set(int year,int month,int date,int hour,int minute)
public long getTimeInMillis()
public void setTimeInMillis(long millis)
}
Calendar类通常用于需要将日期值分解时,Calendar类声明了YEAR等多个常量,分别表示年、月、日、星期等日期的一部分。Calendar是抽象类,调用getInstance()方法创建一个子类对象后,再调用get()方法通过常量参数获得日期和时间的指定部分。
帮助文档中标有“Deprecated”的方法已被Java废弃,不建议使用。
Calendar类的子类GregorianCalendar实现标准的Gregorian日历。
可运行接口。实现了该接口的类的实例对象将在一个单独的线程(thread)中被运行。没有扩展Thread的类可以通过实现该接口,开发出多线程服务的能力。
java.lang.Thread.UncaughtExceptionHandler
线程未捕获异常控制器接口。在线程执行过程中引发了异常而没有捕获时, 实现了该接口的类可以作为控制器处理该状况。Arrays数组类
Java.util.Arrays类提供数组填充、比较、排序、查找等操作。Arrays类的所有方法都是静态方法,每种方法都提供多种基本数据类型及Object类型参数的重载方法。
1、比较两个数组是否相等
equals()方法比较两个数组是否相等,返回布尔类型。部分重载方法声明如下:
public static boolean equals(int[]a,int[]b)
public static boolean equals(Object[]a,Object[]b)
两个数组相等意味着,它们包含的元素个数相等并且所有对应元素的值相等。如果两个数组变量引用同一个数组,显然它们是相等的。
上述若干equals()方法比较两个数组是否相等的算法相同,差别在于,若数组元素是基本类型数据,则采用关系运算==或!=得到比较结果;若数组元素是对象,则采用该类的equals()方法得到比较结果。
2、填充
fill()方法以指定值填充一个数组或一个数组的指定区域。部分重载方法声明如下:
public static void fill(int[]a,int val)
public static void fill(long[]a,int fromIndex,int toIndex)
public static void sort(Object[] a)
3、排序
sort()方法对指定数组默认按升序进行排序。部分重载方法声明如下:
public static void sort(int[] a)
public static void sort(int[] a,int fromIndex,int toIndex)
public static void sort(Object[]a)
sort()方法提供int、double、char共7种数值类型和Object类参数的重载方法。基本数据类型的数组元素由关系运算符比较大小;对象数组元素由实现Comparable接口的cobj1.compareTo(cobj2)方法比较大小。并不是任意一个对象数组都能进行排序操作,只有那些提供比较对象大小方法的对象数组才能进行排序。当遇到不同类的对象无法比较大小时,sort()方法将抛出ClassCastException异常。
同时,Arrays类还提供以下排序方法,由参数c指定比较大小的规则:
public static <T> void sort(T[]a, Comparator<?super T>c)
其中,参数c是实现比较器接口java.util.Comparator的对象,Comparator接口部分声明如下:
public interface Comparator<T>
{
  Int compare(T cobj1,T cobj2);
}
这样能使一个对象数组依据不同的比较规则得到不同的排序结果。
4、二分法查找
binarySearch()方法采用了二分法查找算法在一个已排序数组中查找指定值,若查找成功,则返回元素下标,否则返回-1或超出数组下标范围的值。部分重载方法声明如下:
public static int binarySearch(int[] a, int key)
public static int binarySearch(Object[] a,Object key)
public static<T> int binarySearch(T[]a,T key,Comparator<?super T>c)
由于binarySearch()方法采用的是二分查找算法,因此要求待查找数组是已排序的。
Map集合类
Map 提供了一个更通用的元素存储方法。 Map 集合类用于存储元素对(称作“键”和“值”),其中每个键映射到一个值。 从概念上而言,您可以将 List 看作是具有数值键的 Map。 而实际上,除了 List 和 Map 都在定义 java.util 中外,两者并没有直接的联系。本文将着重介绍核心 Java 发行套件中附带的 Map,同时还将介绍如何采用或实现更适用于您应用程序特定数据的专用 Map。
1、了解Map接口和方法
Java 核心类中有很多预定义的 Map 类。 在介绍具体实现之前,我们先介绍一下 Map 接口本身,以便了解所有实现的共同点。 Map 接口定义了四种类型的方法,每个 Map 都包含这些方法。 下面,我们从两个普通的方法(表 1)开始对这些方法加以介绍。
表1:覆盖的方法。我们将这 Object的这两个方法覆盖,以正确比较 Map 对象的等价性。
表1 Map普通方法
equals(Object o)
比较指定对象与此Map的等价性

hashCode()
返回此Map的哈希码


2、Map构建
Map 定义了几个用于插入和删除元素的变换方法(表2)。?
表 2:Map更新方法:可以更改 Map 内容。 clear() 从Map中删除所有映射。
表2 Map变换方法
remove(Object key)
从Map中删除键和关联的值

put(Object key,Object value)
将指定值与指定键相关联

clear()
从Map中删除所有映射

putAll(Map t)
将指定Map中所有映射复制到此Map

尽管您可能注意到,纵然假设忽略构建一个需要传递给 putAll() 的 Map 的开销,使用 putAll() 通常也并不比使用大量的 put() 调用更有效率,但 putAll() 的存在一点也不稀奇。 这是因为,putAll() 除了迭代 put() 所执行的将每个键值对添加到 Map 的算法以外,还需要迭代所传递的 Map 的元素。 但应注意,putAll() 在添加所有元素之前可以正确调整 Map 的大小,因此如果您未亲自调整 Map 的大小(我们将对此进行简单介绍),则 putAll() 可能比预期的更有效。例题
一、判断题
1、Java以一个整形数表示一个日期。()
2、Calendar类可以用final修饰。()
3、Arrays类的所有方法都是静态方法。()
4、如果两个数组变量引用同一个数组,则它们是相等的。()例题答案
一、判断题
错误
错误
正确
正确
本内容由易百教育整理发布
网址www.openhelp100.com
QQ 515224986
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|小黑屋|www.openhelp100.com ( 冀ICP备19026749号-1 )

GMT+8, 2024-7-1 23:11

Powered by openhelp100 X3.5

Copyright © 2001-2024 5u.studio.

快速回复 返回顶部 返回列表