Date类
Date类表示日期和时间
提供操作日期和时间各组成部分的方法
Date类的最佳应用之一是获取系统当前时间
Date类构造方法
构造方法 | 说明 |
Date() | 使用当天的日期创建Date |
Date(long dt) | 使用自1970年1月1日以后的指定毫秒数创建Date |
代码实现如下:
void display() { String strDate , strTime = ""; System.out.println(“今天的日期是: " + objDate); long time = objDate.getTime(); System.out.println(“自 1970 年 1 月 1 日起" + “以毫秒为单位的时间 (GMT):" + time); strDate = objDate.toString(); // 提取 GMT 时间 strTime = strDate.substring(11 , (strDate.length() - 4)); // 按小时、分钟和秒提取时间 strTime = “时间: " + strTime.substring(0 , 8); System.out.println(strTime); }
Calendar类
根据给定的Date对象,Calendar类可以以YEAR和MONTH等整型的形式检索信息;
它是抽象的,因此不能像Date类一样实例化;
GregorianCalendar:是Calendar的子类,实现Gregorian形式的日历。
代码实现如下:
CalendarComponents() { objCalendar = Calendar.getInstance(); }
void display() { // 显示 Date 和 Time 的组成部分 System.out.println(“\nDate 和 Time 的组成部分:"); System.out.println(“月: " + objCalendar.get(Calendar.MONTH)); System.out.println(“日:" + objCalendar.get(Calendar.DATE)); System.out.println(“年:" + objCalendar.get(Calendar.YEAR)); System.out.println(“小时:" + objCalendar.get(Calendar.HOUR)); System.out.println(“分钟:" + objCalendar.get(Calendar.MINUTE)); System.out.println(“秒:" + objCalendar.get(Calendar.SECOND)); // 向当前时间添加 30 分钟, // 然后显示日期和时间 objCalendar.add(Calendar.MINUTE , 30); Date objDate = objCalendar.getTime(); System.out.println(“\n向当前时间添加 30 分钟后的日期和时间:\n"); System.ou
Random类
此类生成随机数
两种构造方法
Random类的方法:nextInt() nextFloat()nextDouble()
Collection接口
Collection对象是将多个元素组成一个单元的对象
集合用于存储、检索和操纵数据
集合框架是用于表示和操纵集合的统一体系结构
集合框架包含三个组件
结合框架的优点
提供有用的数据结构和算法,从而 减少编程工作
提高了程序速度和质量,因为它提供了高性能的数据结构和算法
允许不同API之间的互操作,API之间可以来回传递集合
可以方便地拓展或改写集合
ArrayList类
ArrayList对象是长度可变的对象引用数组,类似于动态数组
继承AbstractList并实现List接口
随着元素的添加,元素的数目会增加,列表页会随着拓展
访问和遍历对象时,它提供更好的性能
ArrayList类的构造方法
构造方法 | 说明 |
ArrayList() | 创建一个空ArrayList |
ArrayList(Collection c) | 根据给定集合的元素创建数组列表 |
ArrayList(int size) | 使用给定大小创建一个数组列表。向数组列表添加元素时,此大小自动增加 |
代码示例如下
void display() { System.out.println("**********************" + "****************"); System.out.println(“从 ArrayList 中检索对象"); System.out.println("*******************" + "*******************"); System.out.println(); for (int ctr = 0; ctr < playerArray.size(); ctr++) { System.out.print(" " + playerArray.get(ctr)); }
void search() { System.out.println(); System.out.println("************************************" + "***********************"); System.out.println(“搜索一个对象并返回“0 + “第一个和最后一个位置"); System.out.println("*********************************" + "***************************"); System.out.println(); System.out.println(“字符串" + “ \”Serena\“第一次出现在位置是 " + playerArray.indexOf("Serena")); System.out.println(“字符串" + “ \”Serena\“最后一次出现在位置是 " + playerArray.lastIndexOf("Serena")); System.out.println(); }
void extract() { System.out.println("***************************" + "*********************"); System.out.println(“提取一个子列表," + “然后输出新列表"); System.out.println("************************" + "*************************"); System.out.println(); subListObj = playerArray.subList(5, playerArray.size()); System.out.println(“索引 5 至 " + playerArray.size() + “的新子列表为:" + subListObj); System.out.println(); }
void add() { for (int ctr = 0; ctr < 5; ctr++) { playerArray.add(new Integer(ctr)); } playerArray.add("Martina"); playerArray.add("Serena"); playerArray.add("Venus"); playerArray.add("Serena"); System.out.println(); }
LinkedList类
linkedList类用于创建链表数据结构
继承AbstractSequentialList并实现List接口
linkedList类的构造方法
构造方法 | 说明 |
linkedList() | 创建一个空链表 |
linkedList(Collection c) | 根据给定集合的元素创建链表 |
使用LinkedList的好处在于它具有访问、检索和删除数据的方
添加或移除对象时,LinkedList的表现更佳
代码实现如下:
QueueTest() { starListObj = new LinkedList(); }
void test() { System.out.println(“在队列中添加数据对象"); enqueue(new String("Martina Navratilova")); enqueue(new String("Serena Williams")); enqueue(new String("Venus Williams")); enqueue(new String("Steffi Graff")); System.out.println(“\n此队列包含:"); System.out.println("\n" + starListObj); System.out.println(“\n从队列中删除数据对象"); try { for (int cnt = 0; cnt < 4; cnt++) { System.out.println(“出队 " + dequeue()); System.out.println(“\n此队列包含:"); System.out.println("\n" + starListObj); } } catch (Exception ex) { System.out.println(“错误为:" + ex); } }
HashMap类
实现了Map接口
用于存储键/值映射关系
不能保证其元素的存储顺序
HashMap的构造方法
构造方法 | 说明 |
HashMap() | 创建一个具有容量和负载系数的空映射 |
HashMap(int size) | 创建一个具有指定大小的容量和默认负载系数的空映射 |
HashMap(int size,float load) | 创建一个具有指定的容量和指定的负载系数的空映射 |
HashMap(Map map) | 创建一个具有map映射的散列映射 |
它在存放键/值时允许值为null值
示例:
java.util.HashMap map = new java.util.HashMap(); map.put("name",null);
Vector类
Vector类的构造方法
构造方法 | 说明 |
Vector() | 创建一个空Vector |
Vector(int initialCap) | 创建一个空Vector,其初始大小由initialCap指定,容量增量为0 |
Vector(int initialCap,int inc) | 创建一个空Vector,其初始容量由initialCap指定,容量增量由inc指定 |
Vector(Collection c) | u创建一个包含给定集合元素的新Vector,元素顺序为集合迭代器返回的顺序 |
代码示例如下:
PreciousStones() { preciousVector = new Vector(); }
void add() { preciousVector.addElement(“翡翠"); preciousVector.addElement(“黄晶"); preciousVector.addElement(“绿宝石"); preciousVector.addElement(“祖母绿"); }
void search() { System.out.println("***************************"); System.out.println(“搜索内容:"); System.out.println("***************************"); String searchStone = “钻石"; if (preciousVector.contains(searchStone)) { System.out.println(“在索引 " + preciousVector.indexOf(searchStone) + “ 处找到 " + searchStone); } }
void otherDetails() { System.out.println(“\n第一个元素 = " + preciousVector.firstElement()); System.out.println(“默认容量 = " + preciousVector.capacity()); System.out.println(“最后一个元素 = " + preciousVector.lastElement()); }