java.util

本文深入介绍了Java中的关键类,如日期类Date、日历类Calendar、数据列表ArrayList、链表LinkedList、HashMap、Set等,涵盖了这些类的主要特性和用法,并讨论了迭代器和比较器的实现方式。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、日期类Date

大部分方法已过期,但仍可以使用,主要是用get方法获取年、月、日、时、分、秒、毫秒、日期等;使用set方法设置时间

Date date = new Date();  //实例化时便获取当前的时间

Date date = new Date();
SimpleDateFormat sdf = new SimpleDateFormat("yyyy年MM月dd日 HH:mm:ss");
System.out.println(sdf.format(date));

注:SimpleDateFormat是java.text包下的类


二、日历类Calendar

此类不用实例化,通过

Calendar cal = Calendar.getInstance();

获取对象。


三、数据列表(顺序表)ArrayList<E>

1、实例化时可以使用泛型设置类型,若没有使用泛型默认为Object类型

2、逻辑结构与物理结构一致

3、方法包括增加、删除、改变、插入、替换、查找等

四、(双向)链表LinkedList<E>

1、逻辑结构与物理结构不一致,每个对象都能指向前后对象的位置


五、HashMap<k,v>

1、以键值对形式存储数据,没有顺序,通过键值查找

2、数据类型有泛型决定,也可不设置泛型,但返回为对象类型,处理数据时许强转

3、可通过keyset()方法转换成Set类型


六、Set-HashSet、TreeSet

1、HashSet与HashMap类似,但其只有数值;

2、存储同样没有顺序;

3、TreeSet数据结构是二叉树类型,可以使用比较器Comparator进行排序;

4、存储的数据不能重复;


七、迭代器、比较器

1、迭代器可以遍历ArrayList、LinkedList、HashMap、HashSet、TreeSet等集合类中的数据,如下:

treeSet.add(student4);

Iterator iterator = treeSet.iterator();
while (iterator.hasNext()) {
Student student = (Student) iterator.next();
System.out.println(student.getName() + ":" + student.getAge());
}

2、比较器Comparator是一个接口,使用方法有三种:

(1)创建一个类实现该接口,如下:

public class MyCompator implements Comparator{


@Override
public int compare(Object o1, Object o2) {

//
Student student1=(Student)o1;
Student student2=(Student)o2;

if(student1.getAge()>student2.getAge()){
return -1;
}else if(student1.getAge()<student2.getAge()){
return 1;
}else{
return 0;
}



}


}

(2)创建一个内部类,如下:

//内部类
private class MyCom implements Comparator {


@Override
public int compare(Object o1, Object o2) {
//
Student student1 = (Student) o1;
Student student2 = (Student) o2;


if (student1.getAge() > student2.getAge()) {
return -1;
} else if (student1.getAge() < student2.getAge()) {
return 1;
} else {
return 0;
}
}


}

(3)使用匿名类,如下:

TreeSet treeSet = new TreeSet(new Comparator() {


@Override
public int compare(Object o1, Object o2) {
//
Student student1 = (Student) o1;
Student student2 = (Student) o2;


if (student1.getAge() > student2.getAge()) {
return -1;
} else if (student1.getAge() < student2.getAge()) {
return 1;
} else {
return 0;
}
}
});


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值