1.日期与时间类
主要有Calender类,Data类,Calendar类是抽象类,不能实例化,但可以调用方法
import java.util.Calendar;
public class Main{
public static void main(String[] args) {
Calendar today = Calendar.getInstance();
System.out.print("今天是:" + today.get(Calendar.YEAR) + "年");
System.out.print(today.get(Calendar.MONTH)+ 1 + "月");//月是从0开始
System.out.print(today.get(Calendar.DATE) + "日");
}
}
2.集合框架
集合框架中,存储方式分为两种:
1.按照索引值操作数据。实现这种方式的集合类都实现了Collection接口。
Collection接口下又根据元素是否可以重复分别实现了list接口和set接口;
实现list接口的类有vector类和ArrayList类;实现set接口的类有Set类;
2.按照名称操作数据,要求名称不能重复,每个名字对应唯一的键,实现了map接口,
主要有Map类;
3.Collection接口
此接口的方法分为四大类:
1.添加元素:add(); addAll();
2.删除元素:remove(); removeAll(); clear();
3.检索元素:contain(); containAll(); isEmpty();
4.其他方法:size(); toArray(); Iterator();
4.Iterator接口
1.boolean hasNext();//判断有没有下一个元素
2.Object next();//下一个元素,不保证有没有
3.void remove();//删除当前元素;
5.List接口
list接口中的元素是按顺序存放的,可以根据下标进行操作。
实现List接口的类主要有ArrayList和Vector;
Vector支持线程的同步,某一时刻只有一个线程可以写Vector。
public class Main{
public static void main(String[] args) {
ArrayList<Integer> a = new ArrayList<Integer>();
a.add(0);//在尾部添加元素
a.add(1,1);//在指定位置添加元素,从0开始
a.set(1,2);//修改指定位置的元素
//判断一个元素是否在集合中
if(a.contains(2)){
System.out.println("Yes");
}
//返回元素下标,检索元素
int idx = a.indexOf(2);
System.out.println(idx);
//删除元素
a.remove(1);//按索引删除
a.remove((Integer) 1);//按元素删除
//输出整个集合(两种方法)
System.out.println(a);
for(int i=0; i<a.size(); i++){
try {
//像这种集合类不能直接通过下标操作,必须用自带的函数,get(), 跟数组不一样
System.out.println(a.get(i));
}
catch (Exception e){
System.out.println(e.getMessage());
}
}
}
}
6.Set接口
set接口继承了Collection接口,该接口不允许存在相同的元素;
set不支持插入和修改,遍历也需要专门的Iterator;
set根据存储方式的不同,分为hashSet和TreeSet,HashSet是无序的,TreeSet是有序的。
HashSet
public class Main{
public static void main(String[] args) {
HashSet a1 = new HashSet();
//增加一个元素
a1.add("first");
a1.add("second");
a1.add("three");
//如果遇到重复元素,不会增加
a1.add("first");
System.out.println(a1);
System.out.println(a1.size());
//判断一个元素是否在其中
if(a1.contains("first"))
System.out.println("Yes");
//删除一个元素
a1.remove("first");
System.out.println(a1);
//继承Collection的方法,将对象存入数组中
Object[] arr = a1.toArray();
for(int i=0; i<a1.size(); i++){
System.out.println(arr[i]);
}
//利用迭代器循环所有元素
Iterator it = a1.iterator();
while(it.hasNext()){
System.out.println(it.next());
}
}
}
TreeSet
public class Main{
public static void main(String[] args) {
TreeSet<Integer> t1 = new TreeSet<>();
t1.add(1);
t1.add(2);
t1.add(3);
t1.add(1);
System.out.println(t1);
}
}
7.Map接口
Map元素由键值对组成,根据存储结构的不同可分为HashMap,HashTable,TreeMap;
其中,HashMap和HashTable的区别是,HashTable支持线程的同步;
public class Main{
public static void main(String[] args) {
HashMap<Integer,String> hm = new HashMap<>();
//添加和修改,如果添加到关键字已经存在,则修改与该关键字关联的值
hm.put(1,"first");
hm.put(2,"second");
System.out.println(hm);
hm.put(1,"zero");
System.out.println(hm);
//查询,通过contains()查询是否包含关键字;通过get()可以根据关键字找到对应值
if(hm.containsKey(1)){
System.out.println("Yes");
}
//通过clear()删除所有键值对,通过remove删除指定关键字对应的键值对
hm.remove(1);
System.out.println(hm);
//通过keySet获得关键字集合
Set s = hm.keySet();
System.out.println(s);
//通过values获得关键字集合
Collection s1 = hm.values();
System.out.println(s1);
}
}