代码编织梦想

Java工具包类


java.util包有很多实用的类、接口和异常。

向量类,堆栈类,哈希表,枚举接口,日历类,随机函数类,映射接口和属性类。

Vector类

vector是异构的,可以存储不同的对象,同时可以动态增加存储容量

所有向量操作都是针对Object类进行的,要将从向量空间取回的Object对象进行向下转型。

元素个数小于等于容量。

只能放进对象,基本数据类型要使用其包装类。

常用方法

方法说明
Vector()构造空向量
Vector(int initialCapacity)初始化指定大小的向量
Vector(int initialCapacity,int capacityIncrement)capacityIncrement 每次扩充的值: 0 每次扩充一倍
add()添加元素
addElement()添加到末尾
capacity()返回容量大小
clear()清空
elementAt()返回指定位置的对象元素
elements()返回允许访问的每个向量元素的对象
firstElement()返回第一个对象元素
get()返回指定位置的对象元素
indexOf()查找指定对象元素的位置, 不存在返回-1
isEmpty()判断是否为空
remove()清除指定位置或者对象的元素
removeAllElements()清除所有元素
setElementAt()在指定位置设置指定的对象元素,覆盖原来的
setSize()设置容量大小
size()返回元素个数
trimToSize()设置实际容量为内部的缓存容量
toArray()返回向量元素数组
subList()返回向量位置
removeElementAt()删除index所指的地方的对象
例子
import java.util.Vector;

public class VectorDemo {
    public void test(){
        Vector vectTemp = new Vector(4,3);
        System.out.println("元素个数: " + vectTemp.size());
        System.out.println("容量大小: " + vectTemp.capacity());
        // 添加元素
        vectTemp.add(new Integer(3));
        vectTemp.addElement(new Double(4.0));
        vectTemp.insertElementAt(new Float(5.0f),1);
        vectTemp.add("hello world");
        vectTemp.add("wkk");
        System.out.println("元素个数: " + vectTemp.size());
        System.out.println("容量大小: " + vectTemp.capacity());
        // toString() 会将所有元素按照字符串输出
        System.out.println(vectTemp.toString());
        // 第2个元素
        System.out.println(vectTemp.get(2));
    }

    public static void main(String[] args) {
        new VectorDemo().test();
    }
}

img-uA1gmDJY-1663776917168)(E:/ImgTemp/image-20220919181048118.png

Stack类

后进先出: LIFO

可以接收任何类型对象

常用方法

方法说明
Stack()构造空堆栈
empty()判断是否为空
peek()取得堆栈顶端的元素
pop()删除堆栈顶端的元素,并返回
push(Object item)入栈
search(Object item)检查堆栈中中是否有指定的对象
例子
import java.util.Stack;
public class StackDemo {
    public void test(){
        Stack stkTemp = new Stack();
        System.out.println("堆栈是否为空: "+stkTemp.empty());
        stkTemp.push(new Integer(2));
        stkTemp.push("wkk");
        // 查看元素位置
        System.out.println("元素wkk位置:" + stkTemp.search("wkk"));
        System.out.println("元素2位置:" + stkTemp.search(new Integer(2)));
        // 栈顶元素 peek
        System.out.println(stkTemp.peek());
        System.out.println(stkTemp.peek());
        //栈顶元素 pop
        System.out.println(stkTemp.pop());
        System.out.println(stkTemp.pop());
    }

    public static void main(String[] args) {
        new StackDemo().test();
    }
}

  • 栈顶元素所处位置为 1
  • 栈顶的下一个元素的位置为 2
Hashtable类

Dictionary类是一个抽象类,为字典表提供了一个统一的接口。

Hashtable 是一个键值对集合, 是抽象类Dictionary的一个具体实现,可以存储任意对象。

常用方法

方法说明
Hashtable()构造空的哈希表
clear()清空
containsKey()对象是否是表中的关键字
containsValue()对象是否是表中的值
elements()返回允许访问每个对象元素的对象
get()根据指定的键返回其对应的值
put(Object key, Object value)将一组键值对放进表中
keys()返回允许访问每一个键的对象
size()键的个数
remove()依据指定的键删除对应的键值对

每一个键唯一对应一个键值对,一个哈希表中的键不能重复

任何一个对象可以充当键,任何一个对象也可以充当值。

例子
import java.util.Hashtable;
public class HashtableDemo {
    public void test(){
        Hashtable hshTemp = new Hashtable();
        hshTemp.put("001",new Integer(1));
        hshTemp.put("002",new Integer(2));

        // 元素个数
        System.out.println("元素个数: " + hshTemp.size());
        // 获取值
        System.out.println(hshTemp.get("001"));
        // 判断是否有值 1
        System.out.println("有值1: " + hshTemp.containsValue(new Integer(1)));
        // 哈希表转换为String
        System.out.println(hshTemp);
    }

    public static void main(String[] args) {
        new HashtableDemo().test();
    }
}

在这里插入图片描述

Enumeration接口

Enumeration对应着一个对象集合,一般是和Vector, Stack, Hashtable或者其他类共同实现完成。

使用它们的elements()方法来得到元素集合。

iterator 迭代器

常用方法:

方法说明
hasMoreElements()判断对象是否有多的元素
nextElement()获得对象集合的下一个对象
例子
import java.util.Vector;
import java.util.Enumeration;

public class EnumerationDemo {
    public void test(){
        Vector vctTemp = new Vector(3,2);
        Enumeration enumTemp ;
        // 添加字符串
        for(int intTemp = 1;intTemp < 4;intTemp++){
            String string = "字符串" + intTemp;
            vctTemp.addElement(string);
        }

        enumTemp = vctTemp.elements();
        while(enumTemp.hasMoreElements()){
            String  strElement = (String)enumTemp.nextElement();
            System.out.println("元素值: " + strElement);
        }
    }

    public static void main(String[] args) {
        new EnumerationDemo().test();
    }
}

在这里插入图片描述

Enumeration 是一个接口,所以不能使用new() 方法来定义一个实例

Calendar类

工作原理,从本机电脑系统中取得系统时间、所处时区等数据来得到时间的具体信息。

常用属性

属性说明
YEAR
MONTH
DAY_OF_MONTH当月的第几天
DAY_OF_WEEK当星期的第几天
DAY_OF_YEAR当前的第几天
WEEK_OF_YEAR当年的第几周
Calendar()构造函数,但是是protected的,不能直接new
getInstance()获得日历类的实例
get(int field)获得某一属性的值,field为日历中定义的属性
set(int field)设置某一属性的值
getTime()返回日历所对应的日期(date)
Clear(int field)清除日历类的某一个属性的值
例子
import java.util.Calendar;

public class CalendarDemo {
    public void test(){
        Calendar cldTemp = Calendar.getInstance();
        // 打印基本的日历信息
        System.out.println("年:" + cldTemp.get(Calendar.YEAR));
        System.out.println("月: " + cldTemp.get(Calendar.MONTH));
        System.out.println("日: " + cldTemp.get(Calendar.DATE));
        // 具体日历信息
        System.out.println("上/下午: " + cldTemp.get(Calendar.AM_PM));
        System.out.println("小时: " + cldTemp.get(Calendar.HOUR));
        System.out.println("分钟: " + cldTemp.get(Calendar.MINUTE));
        System.out.println("秒: " + cldTemp.get(Calendar.SECOND));
        System.out.println("毫秒: " + cldTemp.get(Calendar.MILLISECOND));
        // 转换为数组
        System.out.println("数组: " + cldTemp.toString());
    }

    public static void main(String[] args) {
        new CalendarDemo().test();
    }
}
  • 整个日历是由一个数组存放的
  • 日历类的构造函数是protected的,所以不能直接用new创建,而是用getInstance()获得
    在这里插入图片描述
Random类

Random类是伪随机数生成器。

常用方法

方法说明
Random构造方法
nextBoolean()返回一个boolean变量 true / false
nextDouble()返回一个double数 0.0 - 1.0
nextFloat()0.0 - 1.0
nextInt()
nextLong()
nextGaussian()根据一个伪离散高斯分布生成一个双精度随机数 0.0 - 1.0
例子
import java.util.Random;

public class RandomDemo {
    public void test() {
        Random rndTemp = new Random();
        System.out.println("布尔: " + rndTemp.nextBoolean());
        System.out.println("double: " + rndTemp.nextDouble());
        System.out.println("float: "+ rndTemp.nextFloat());
        System.out.println("long: " + rndTemp.nextLong());
        System.out.println("int: " + rndTemp.nextInt());
        // 10以内整型
        System.out.println("int(10以内): " +rndTemp.nextInt(10));
    }

    public static void main(String[] args) {
        new RandomDemo().test();
    }
}

在这里插入图片描述

  • nextInt(n) 返回[0, n) 的整数 -> n>0
Map接口

Map(映射)接口定义了一个框架,用来实现基本的映射数据结构。

Hashtable类实现了Map接口。

Map接口定义了在索引的基础上存储和检索信息的方法,Map接口中的键可以是任何类型。

常用方法:

基本都是针对键和键对应的对象

方法说明
clear()清除所有
containsKey()是否有指定的键
containsValue()是否有指定的值
entrySet()返回映射对象所对应的集合
hashCode()返回映射对象本身的哈希码
isEmpty()是否为空
keySet()返回键的集合
put()添加键值对
putAll(Map t)将已知的映射t中的所有映射添加到本映射中
remove()根据键删除映射
size()返回映射个数
values()返回值的集合

Map是一个接口,需要实现。

HashMap类实现了Map接口。

例子
import java.util.HashMap;
import java.util.Set;
import java.awt.Rectangle;

public class HashMapDemo {
    public void test(){
        HashMap hmTemp = new HashMap();
        // 构造数组,预存放键对象
        Object objectKeyTemp [] = new Object[3];
        hmTemp.put("small",new Rectangle(0,0,5,5));
        hmTemp.put("midium",new Rectangle(0,0,15,15));
        hmTemp.put("large",new Rectangle(0,0,30,30));
        // 个数
        System.out.println("个数: " + hmTemp.size());
        // 是否含有键small
        System.out.println("是否含有small键: " + hmTemp.containsKey("small"));
        System.out.println("是否含有Rectangle(0,0,15,15): "+hmTemp.containsValue(new Rectangle(0,0,15,15)));
        // 返回映射中键的集合
        Set setTemp = hmTemp.keySet();
        objectKeyTemp = setTemp.toArray();
        for (int i = 0; i < objectKeyTemp.length; i++) {
            if(objectKeyTemp[i] instanceof String) {
                String s = (String) objectKeyTemp[i];
                System.out.println("key的值: " + s);
            }
        }
    }

    public static void main(String[] args) {
        new HashMapDemo().test();
    }
}

在这里插入图片描述

Properties类

主要用于读取Java的配置文件

在Java中,其配置文件常为.properties文件,是以键值对的形式进行参数配置的。

Properties类是Hashtable类的子类,有Hashtable类对象的所有方法

常用方法

方法说明
getProperty()依据指定的键或者值返回属性值
load(InputStream inStream)从指定的输入流中读取键和其指定对象进行加载
propertyNames()将属性对象中的键返回到枚举接口
setProperty(String key,String value)设定属性对象中的一组属性对象对,其中键和值都是String类型
store(OutputStream out,String header)将属性对象中的属性对象加载到指定的输出流中,同时指定名字
例子

配置文件: file.properites

age = 25
name = wkk
package com.wkk;

import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.util.Enumeration;
import java.util.Properties;
import java.io.IOException;
public class PropertiesDemo {
    public void test(){
        Properties ppTemp = new Properties();
        try{
            ppTemp.load(new FileInputStream("src/com/wkk/file.properties"));
        }catch (FileNotFoundException e){
            e.printStackTrace();
        }catch(IOException e){
            e.printStackTrace();
        }
        Enumeration content = ppTemp.propertyNames();
        while(content.hasMoreElements()){
            String key = (String)content.nextElement();
            String value =ppTemp.getProperty(key);
            System.out.println(key + ":" + value);
        }
    }

    public static void main(String[] args) {
        new PropertiesDemo().test();
    }
}

在这里插入图片描述

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/first_bug/article/details/126983598

java 开发工具包_lcg_magic的博客-爱代码爱编程

JVM、JRE 和 JDK 要知道如何编译运行 Java 源程序,那么必须了解到与 Java 程序相关的工具。 与 Java 语言相关的名词,初期必须掌握的有三个: JVM:Java Virtual Machine 的缩写,Java虚拟机。作用是:运行 Java 字节码文件。 JRE:Java Runtime Environment 的缩写,Jav

java utils工具类大全_柳牧之的博客-爱代码爱编程_utils

源码和jar见:https://github.com/evil0ps/utils #Java Utils 封装了一些常用Java操作方法,便于重复开发利用. 另外希望身为Java牛牛的你们一起测试和完善,欢迎入群2636

Java自带工具包StringUtils详解-爱代码爱编程

1. StringUtils.isEmpty() 判断某字符串是否为空,为空的标准是 str==null 或 str.length()==0 StringUtils.isEmpty(null) = trueStringUtils.isEmpty("") = trueStringUtils.isEmpty(" ") = falseStringUt

java arrays在哪个包_//导入Java中util类中的Arrays工具包-爱代码爱编程

源自:7-1 编程练习 //导入Java中util类中的Arrays工具包 //导入Java中util类中的Arrays工具包 import java.util.Arrays; //创建一个HelloWorld类 public class HelloWorld { //导入一个 main 方法 public static void mai

Java Hutool(糊涂)工具类索引记录-爱代码爱编程

前言 有时候工具类太多,包括项目封装的,不知道用哪一个,在这里记录下目录,方便查找 介绍 Hutool 是一个 Java 工具包,也只是一个工具包,它帮助我们简化每一行代码,减少每一个方法,让 Java 语言也可以“甜甜的”。Hutool 最初是我项目中 “util”包的一个整理,后来慢慢积累并加入更多非业务相关功能,并广泛学习其它开源项目精髓

java实用类之正则工具类-爱代码爱编程

/** * 正则工具类 */ public class PatternUtil { /** * 匹配邮箱正则 */ private static final Pattern VALID_EMAIL_ADDRESS_REGEX = Pattern.compile("^[A-Z0-9._%+-

java常用工具类封装-爱代码爱编程

java常用工具类封装 import org.apache.commons.lang.StringUtils; import java.math.BigDecimal; public class CommonUtil { public static String safeToString(Object value, String defau

Java DES 加密解密工具类实现-爱代码爱编程

DES(Data Encryption Standard)是一种对称加密算法,所谓对称加密就是加密和解密都是使用同一个密钥 引用依赖 import javax.crypto.Cipher; import javax.crypto.SecretKey; import javax.crypto.SecretKeyFactory; import javax.

【无标题】-爱代码爱编程

Java 缓存工具类 Cache 工具类定义 工具类定义 package com.demo.utils; import org.springframework.util.StringUtils; import java.util.LinkedList; import java.util.List; import java.util.Map