A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© qmlovewhr 中级黑马   /  2013-7-15 09:29  /  852 人查看  /  2 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 杨兴庭 于 2013-7-16 17:45 编辑

import java.util.*;
class  PropertiesDemo
{
public static void main(String[] args)
{
  setAndGet();
}
public static void setAndGet()
{
  Properties prop=new Properties();
  prop.setProperty("zhangsan","30");
  prop.setProperty("lisi","39");
  System.out.println(prop);
  String value=prop.getProperty("lisi");
//在这里问一句,有没有这要的设置:String s=prop.getProperty("30")通过年龄返回姓名?
  System.out.println(value);
  Set<String>names=prop.stringPropertynames();//把names设置成一个字符串集合,
  for(String s:names)//这里属于一个高级for循环,其中s是用于存储的字符串对象,names是要遍历的对象,也就是循环的主体,这样理解对吗?
  {
   System.out.println(s+":"+prop.getProperty(s));//每次打印s中存储的内容,另外通过names获取它们的年龄,这样说有问题吗?
  }
}
}

stringPropertynames返回此属性列表中的键集,其中该键及其对应值是字符串,如果在主属性列表中未找到同名的键,则还包括默认属性列表中不同的键.这其中的主属性是怎么区分的?

评分

参与人数 1技术分 +1 收起 理由
杨兴庭 + 1

查看全部评分

2 个回复

倒序浏览
Properties只有通过key获取到value的值,没有通过value的值获取key的值,因为key是唯一的,每个key都是不相同的,但是value有可能相同,所以要是通过value取key的话就会有可能出现一个value对应几个key。
回复 使用道具 举报
本帖最后由 wll_sx1990 于 2013-7-15 11:25 编辑

properties是一个继承自hashtable的类,但特殊在他的键和值都是String类型的。所以一般都用具有主键充当key,姓名相比年龄,年龄的重复率更高吧。后面的那个循环是for增强,s是names集合的元素的引用。这个主属性就是你添加的那些个key,properties还有一个构造函数:

  1. <P> </P>
复制代码
这里是给他添加了个默认的属性列表。
  1. public Set<String> stringPropertyNames()Returns a set of keys in <FONT color=magenta>this property list</FONT> where the key and its corresponding value are strings, including distinct keys in <STRONG><FONT style="BACKGROUND-COLOR: white" color=indigo>the default property list</FONT></STRONG> if a key of the same name has not already been found from the main properties list. Properties whose key or value is not of type String are omitted.
复制代码
这里所说的主属性列表this property list 就是我们后来添加的那些个属性,而所谓的默认的属性列表the default property list 就是构造函数里面添加的那些个属性列表Properties defaults

评分

参与人数 1技术分 +1 收起 理由
杨兴庭 + 1

查看全部评分

回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马