黑马程序员技术交流社区

标题: Properties里的问题, [打印本页]

作者: GoodBoy123    时间: 2014-5-29 14:51
标题: Properties里的问题,
本帖最后由 GoodBoy123 于 2014-5-29 22:54 编辑

打印出来是键值对的顺序是反的。
这是怎么回事,
  1. /**
  2. * 把一个指定文件里的键值对加载到properties中。
  3. * */
  4. import java.io.*;
  5. import java.util.*;

  6. public class ProertiesFile {
  7. public static void main(String args []){
  8. Dome();
  9. }

  10. public static void Dome(){
  11. BufferedReader br = null; //生成带缓冲的输入流,
  12. Properties pro = new Properties(); //生明一个Properties 对象。

  13. try{
  14. br = new BufferedReader(new FileReader("c:\\info.txt"));//给输入流初始化。
  15. String buffer = null; //定义一个字符串
  16. while(true){
  17. buffer = br.readLine();
  18. if(buffer == null)
  19. break;
  20. String str[] = buffer.split("="); //分割字符串
  21. pro.setProperty(str[0],str[1]); //添加到pro里,
  22. }

  23. System.out.println(pro); //打印一下内容。

  24. }
  25. catch(IOException e){
  26. System.out.println(e);
  27. }
  28. finally{
  29. try {
  30. if(br != null)
  31. br.close();

  32. } catch (Exception e2) {
  33. System.out.println(e2);
  34. }
  35. }
  36. }
  37. }
复制代码



  1. <P> </P>
复制代码


作者: 波涛    时间: 2014-5-29 15:44
properties是继承自hashtable的,本来就是无序的。
作者: wyqs92    时间: 2014-5-29 15:47
你是因为properties继承了了hashtable,底层是hash表结构,所以它是以hash算法存储元素的,所以你取得时候就是这样的!!!
作者: 路漫漫_求索    时间: 2014-5-29 22:45
因为Properties是Hashtable的子类,它的底层数据结构是哈希表,所以你看到的结果是无序的
作者: GoodBoy123    时间: 2014-5-29 22:53
路漫漫_求索 发表于 2014-5-29 22:45
因为Properties是Hashtable的子类,它的底层数据结构是哈希表,所以你看到的结果是无序的 ...

:handshake:handshake:handshake




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2