类集框架(七)_5.Stack,Properties子类

本文深入探讨了Java中Stack类的使用,包括其作为Vector子类的特点与栈操作;详细解析了Properties类用于处理资源文件(*.properties)的属性操作方法及文件读写过程;并介绍了Collections工具类在集合操作上的便捷功能。

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

知识点:

   了解Stack类的使用。

具体类容:

   Stack表示的是栈操作,栈是一种先进后出的数据结构。而Stack是Vector的子类。

    public class Stack<E> extends Vector<E>

  但是需要注意的是,虽然Stack是Vector子类,可是它不会使用Vector类的方法。

  •  入栈:pubic E push(E item)
  •  出栈:public E pop()
package conll;

import java.util.Stack;

public class TestDemo {

	public static void main(String[] args) throws Exception {
			Stack<String> all = new Stack<String>();
			all.push("a");
			all.push("b");
			all.push("c");
			all.push("a");
			System.out.println(all.pop());
			System.out.println(all.pop());
			System.out.println(all.pop());
			System.out.println(all.pop());
			System.out.println(all.pop()); //EmptyStackException
			
}

}

标题:Properties子类

知识点:

      国际化程序的特点:同一个程序,根据不同的语言选择资源文件,所有的资源文件后缀必须是“*Properties”。

      Properties类的操作特点。

具体内容(次重点):

     Properties是Hashtable的子类,主要是进行属性的操作(属性的最大特点是利用字符串设置key和value)。Properties类的定义结构如下:Public class Properties extends Hashtable<Object,Object>,在使用Properties类的时候不需要设置泛型类型,因为它一开始就只能够保存String。Properties中主要操作一下的操作方法:

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

    2.取得属性:public String getProperty(String key),如果key不存在返回null

    3.取得属性:public String getProperty(String key,String defaultValue),如果key不存在返回默认值。

范例:属性的基本操作

package conll;

import java.util.Properties;
import java.util.Stack;

public class TestDemo {

	public static void main(String[] args) throws Exception {
		Properties pro = new Properties();	
        pro.setProperty("BJ", "北京");
        pro.setProperty("tj", "天津");
        System.out.println(pro.getProperty("BJ"));
        System.out.println(pro.getProperty("GZ"));
        System.out.println(pro.getProperty("ghgh", "没有此纪录"));
	}

}

 在Properties类里面提供有数据的输出操作:public void store(OutputStream out,String comments) throws IOException

范例:将属性信息保存在文件里面

package conll;

import java.io.File;
import java.io.FileOutputStream;
import java.io.Writer;
import java.util.Properties;
import java.util.Stack;

public class TestDemo {

	public static void main(String[] args) throws Exception {
		Properties pro = new Properties();	
        pro.setProperty("BJ", "北京");
        pro.setProperty("tj", "天津");
        //一般来讲后缀可以随意设置,但是标准来讲,既然属于属性文件*.properties,这样做也是为了与国际化对应
        pro.store(new FileOutputStream(new File("D:"+File.separator+"area.properties")), "info");
	}

}

也可以在制定的输入流中读取属性信息:public void load(InputStream inStream) throws IOException

范例:通过文件流读书属性内容

package conll;

import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.Writer;
import java.util.Properties;
import java.util.Stack;

public class TestDemo {

	public static void main(String[] args) throws Exception {
		Properties pro = new Properties();	
        
        pro.load(new FileInputStream(new File("D:"+File.separator+"area.properties")));
       System.out.println( pro.getProperty("BJ"));
	}

}

     对于文件属性(资源文件)而言,除了可以使用Properties类读书之外,也可以使用ResourceBundle类读取,这也就是将输出的属性文件统一后缀为"*.properties"的原因所在。

总结:

   1.资源文件的特点。

     key=value

     key=value

   2.资源文件中的数据一定都是字符串。

标题:Collections工具类

知识点:

     了解Collection类的功能。

具体内容:

    在JAVA提供类库的时候考虑到用户的使用方便性,所以专门提供了一个集合的工具类——Collections,这个工具类可以实现List、Set、Map集合的操作。

    为集合追加数据:public static <T> boolean addAll(Collection<?super T>c,T.....elements)

package conll;

import java.util.ArrayList;
import java.util.Collections;
import java.util.List;

public class TestDemo {

	public static void main(String[] args) throws Exception {
		List<String> all = new ArrayList<String>();
        Collections.addAll(all,"A","B","C","D","E");
        Collections.reverse(all);
        System.out.println(all);
	}

}

面试题:请解释Collection与Collections的区别?

1.Collection是集合操作的接口。

2.Collections是集合操作的工具类,可以进行List、Set、Map集合的操作。

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值