集合工具类

本文深入讲解了Java集合框架中的Stack栈、Queue队列、Properties属性操作及Collections工具类的使用。详细介绍了各种数据结构的特点、操作方法及应用场景,如栈的先进后出特性,队列的先进先出规则,以及如何通过Properties类读写配置文件。

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

1、Stack栈操作

栈是一种先进后出的数据结构。类定义:public class Stack<E> extends Vector<E>

Stack是Vector的子类,但它使用的并不是Vector类中的方法,类中方法:

入栈:public E push(E item)

出栈:public E pop()

出栈顺序:先入后出,数据取完时会出现空栈异常。

2、Queue队列

队列是一种先进先出的数据结构。队列的实现可以使用LinkedList子类来完成。Queue接口中方法:

向队列之中追加数据:public boolean offer​(E e),也可以直接使用add()方法

通过队列获取数据:public E poll​()弹出后删除数据

实例化:Queue<String> queue = new LinkedList<String>() ;

通过优先级队列(有比较功能)实例化:Queue<String> queue = new PriorityQueue<String>() ;

3、Properties属性操作

资源文件(*.properties)的存储结构是按照标准"key=value"的形式,这种结构的保存与Map集合很相似,但是区别在于其所保存的内容只能是字符串,为了方便描述属性定义,在java.util包里提供有Properties类,此类是Hashtable的子类。类中方法:

设置属性:public Object setProperty​(String key,String value)

获取属性,key不存在则返回null:public String getProperty​(String key)

获取属性,不存在返回默认值:public String getProperty​(String key,String defaultValue)

输出属性内容:public void store​(OutputStream out,String comments) throws IOException

通过输入流读取属性内容:public void load​(InputStream inStream) throws IOException

Properties里面可以像Map集合那样进行内容的设置与获取,但是与Map集合不同的是Properties类还有一个最重要的功能是它可以通过输出流输出属性,也可以使用输入流读取属性内容。

import java.util.Properties ;
import java.io.File ;
import java.io.FileOutputStream ;
import java.io.FileInputStream ;
public class JavaDemo {
    public static void main(String[] args) {
        Properties prop = new Properties() ;
        //设置属性内容
        prop.setProperty("yiyi","aaa") ;
        //将属性输出到文件中
        prop.store(new FileOutputStream(new File("D" + File.seprarator + "info.properties")),"中文注释会有编码-English") ;
        
        //从文件中读取属性
        prop.load(new FileInputStream(new File("D" + File.seprarator + "info.properties"))) ;
        System.out.println(prop.getProperty("yiyi")) ;
    }
}
4、Collections工具

Conllections是java提供的一组集合数据的操作工具类,即可利用其实现各个集合的操作。

import java.util.ArrayList ;
import java.util.Collections ;
import java.util.List ;
public class JavaDemo {
    public static void main(String[] args) {
        List<String> all = new ArrayList<String>() ;
        Collections.addAll(all,"a","v","s") ;
        Collections.sort(all) ; //先进行排序,再执行二分查找
        System.out.println(all) ;
        System.out.println(Collections.binarySearch(all,"a")) ; //输出结果0
    }
}

【重要】解释Collections与Collection的区别?

Collection是集合接口,允许保存单值对象

Collections是集合操作的工具类

二者没有本质联系。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值