Properties类
import java.io.FileReader; import java.util.Enumeration; import java.util.Properties; /* * Properties类,键值对集合,是Hashtable的子类 * 但只能存储字符串键值对 */ public class Test07 { public static void main(String[] args) throws Exception { test1(); test2(); } // Properties基本用法 public static void test1() { // 创建一个Properties属性集合 Properties p = new Properties(); // 添加属性和属性值 p.setProperty("username", "tom"); p.setProperty("sex", "男"); p.setProperty("hobby", "学习Java编程"); // 根据属性名获取属性值 String hobby = p.getProperty("hobby"); System.out.println("hobby:" + hobby); // 遍历Properties集合 System.out.println("******遍历Properties集合"); Enumeration e = p.propertyNames();// 获取属性名的枚举实例 while (e.hasMoreElements()) { String key = (String) e.nextElement(); String value = p.getProperty(key); // String value=(String) p.get(key); System.out.println(key + ":" + value); } System.out.println(p); } // 查看系统属性 public static void test2() { // 获取系统的属性 Properties p = System.getProperties(); // 遍历输出系统属性信息 Enumeration e = p.propertyNames(); while (e.hasMoreElements()) { String key = (String) e.nextElement(); String value = p.getProperty(key); System.out.println(key + ":" + value); } } // 加载文件中的属性信息 public static void test3() throws Exception { //创建文件输入流 FileReader reader = new FileReader("student.properties"); //创建一个Properties集合,保存属性信息 Properties p=new Properties(); //使用load()方法加载属性文件 p.load(reader); System.out.println(p); } }
运行如下:
hobby:学习Java编程
******遍历Properties集合
sex:男
hobby:学习Java编程
username:tom
{hobby=学习Java编程, sex=男, username=tom}
java.runtime.name:Java(TM) SE Runtime Environment
sun.boot.library.path:D:\Program Files (x86)\Java\jdk1.8.0_25\bin
java.vm.version:25.25-b02
java.vm.vendor:Oracle Corporation
java.vendor.url:http://java.oracle.com/
path.separator:;
java.vm.name:Java HotSpot(TM) 64-Bit Server VM
file.encoding.pkg:sun.io
user.script:
user.country:CN
sun.java.launcher:SUN_STANDARD
sun.os.patch.level:Service Pack 1
java.vm.specification.name:Java Virtual Machine Specification
user.dir:E:\workspace\Study
java.runtime.version:1.8.0_25-b18
java.awt.graphicsenv:sun.awt.Win32GraphicsEnvironment
java.endorsed.dirs:D:\Program Files (x86)\Java\jdk1.8.0_25\lib\endorsed
os.arch:amd64
java.io.tmpdir:C:\Users\ADMINI~1\AppData\Local\Temp\
line.separator:
java.vm.specification.vendor:Oracle Corporation
user.variant:
os.name:Windows 7
sun.jnu.encoding:GBK
java.library.path:D:\Program Files (x86)\Java\jdk1.8.0_25\bin;C:\Windows\Sun\Java\bin;C:\Windows\system32;C:\Windows;C:\Windows\System32;H:\安卓开发\sdk\platform-tools;.
java.specification.name:Java Platform API Specification
java.class.version:52.0
sun.management.compiler:HotSpot 64-Bit Tiered Compilers
os.version:6.1
user.home:C:\Users\Administrator
user.timezone:
java.awt.printerjob:sun.awt.windows.WPrinterJob
file.encoding:GBK
java.specification.version:1.8
user.name:Administrator
java.class.path:E:\workspace\Study\bin;C:\Users\Administrator\Desktop\HanziToPinyinTest\libs\pinyin4j-2.5.0.jar
java.vm.specification.version:1.8
sun.arch.data.model:64
java.home:D:\Program Files (x86)\Java\jdk1.8.0_25
sun.java.command:Test07
java.specification.vendor:Oracle Corporation
user.language:zh
awt.toolkit:sun.awt.windows.WToolkit
java.vm.info:mixed mode
java.version:1.8.0_25
java.ext.dirs:D:\Program Files (x86)\Java\jdk1.8.0_25\lib\ext;C:\Windows\Sun\Java\lib\ext
sun.boot.class.path:D:\Program Files (x86)\Java\jdk1.8.0_25\lib\resources.jar;D:\Program Files (x86)\Java\jdk1.8.0_25\lib\rt.jar;D:\Program Files (x86)\Java\jdk1.8.0_25\lib\sunrsasign.jar;D:\Program Files (x86)\Java\jdk1.8.0_25\lib\jsse.jar;D:\Program Files
(x86)\Java\jdk1.8.0_25\lib\jce.jar;D:\Program Files (x86)\Java\jdk1.8.0_25\lib\charsets.jar;D:\Program Files (x86)\Java\jdk1.8.0_25\lib\jfr.jar;D:\Program Files (x86)\Java\jdk1.8.0_25\classes
java.vendor:Oracle Corporation
file.separator:\
java.vendor.url.bug:http://bugreport.sun.com/bugreport/
sun.cpu.endian:little
sun.io.unicode.encoding:UnicodeLittle
sun.desktop:windows
sun.cpu.isalist:amd64
Collections工具类
import java.util.ArrayList; import java.util.Collections; import java.util.List; /* * Collections工具类,用来操作集合 * 对比Arrays工具类,用来操作数组 */ public class Test01 { public static void main(String[] args) { // 创建集合 List list = new ArrayList(); // 向集合中添加数据 list.add("i"); list.add("love"); list.add("you"); list.add("itany"); list.add("welcome"); list.add("to"); list.add("itany"); //输出集合中的最大值和最小值 System.out.println("最大值:"+Collections.max(list)); System.out.println("最小值:"+Collections.min(list)); //按升序排列 System.out.println("排序前:"+list); Collections.sort(list); System.out.println("排序后:"+list); //把集合顺序反转,即降序 //Collections.reverse(list); //System.out.println("降序:"+list); //二分查找 int index=Collections.binarySearch(list, "to"); System.out.println("to在集合中的位置:"+index); } }
运行实例如下:
最大值:you
最小值:i
排序前:[i, love, you, itany, welcome, to, itany]
排序后:[i, itany, itany, love, to, welcome, you]
to在集合中的位置:4
正好分析一下Collection和Collections的区别:
1、java.util.Collection 是一个集合接口(集合类的一个顶级接口)。它提供了对集合对象进行基本操作的通用接口方法。Collection接口在Java 类库中有很多具体的实现。Collection接口的意义是为各种具体的集合提供了最大化的统一操作方式,其直接继承接口有List与Set。
Collection
├List
│├LinkedList
│├ArrayList
│└Vector
│ └Stack
└Set
2、java.util.Collections 是一个包装类(工具类/帮助类)。它包含有各种有关集合操作的静态多态方法。此类不能实例化,就像一个工具类,用于对集合中元素进行排序、搜索以及线程安全等各种操作,服务于Java的Collection框架。