Java的util包,及集合框架

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);
    }
}

在这里插入图片描述

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值