首页 \ 问答 \ 如何在java中将Map 转换为Map ?(How to convert Map to Map in java?)

如何在java中将Map 转换为Map ?(How to convert Map to Map in java?)

我有类型为Object的Map,我需要将此映射转换为String类型。

Map<String, String> map = new HashMap<String, String>();    
Properties properties = new Properties();    
properties.load(instream);     

可以告诉我,如何将属性分配到上面的地图?

谢谢和问候,Msnaidu


I have the Map of type Object, i need to convert this map into the type String.

Map<String, String> map = new HashMap<String, String>();    
Properties properties = new Properties();    
properties.load(instream);     

Can any body please tell me, how to assign the properties to above map?

Thanks & Regards, Msnaidu


原文:https://stackoverflow.com/questions/17208346
更新时间:2019-12-13 08:36

最满意答案

将属性添加到地图的最简洁方法是(从您的示例开始):

for (String propName : properties.stringPropertyNames()) {
    map.put(propName, properties.getProperty(propName));
}

这在这种特殊情况下很有效,因为Properties对象实际上是一个包含String键和值的映射,因为getProperty方法很清楚。 由于可怕的向后兼容性原因Map<Object, Object>它仅被声明为Map<Object, Object>

通过使用特定于属性的方法,而不是将其视为Map<Object, Object> ,您可以使用完美的类型安全(而不是必须强制转换)填充Map<String, String>


The cleanest way to add the properties to the map would be (following on from your example):

for (String propName : properties.stringPropertyNames()) {
    map.put(propName, properties.getProperty(propName));
}

This works nicely in this particular case, because the Properties object is really a map containing String keys and values, as the getProperty method makes clear. It's only declared as Map<Object, Object> for horrible backwards-compatibility reasons.

By using the Properties-specific methods, rather than treating this as just a Map<Object, Object>, you can populate your Map<String, String> with perfect type-safety (rather than having to cast).

2013-06-20

相关问答

更多

MVC4:ViewModel(带有radiobuttonlist)在HttpPost之后为空(MVC4: ViewModel (with radiobuttonlist) is empty after HttpPost)

我没有看到表单有如下ID的映射: @Html.HiddenFor(model => model.Id) 每个内部问题集合也应该具有Id,以便与表单一起发布。 因此,对于您可以拥有的每个问题,在表单的foreach循环中: @Html.HiddenFor(model => item.Question.Id) 该模型还具有MultipleChoiceQuestion类型的集合。 对于模型绑定到集合,集合元素的名称应具有带有序数字的name属性,如本文http://haacked.com/arch

如何在同一帐户上设置“Dev repo”(在prod和团队之间)(How to set up a “Dev repo” (between the prod and the team) on the same account)

在git中似乎存在一个基本的误解。 您有一个通过设置组织正确找到的回购。 那很棒。 你和你的开发人员在他们的回购中单独分工。 那也没关系。 现在,如果您是首席开发人员,并且想要了解人们的工作方式,那么您可以在GitHub上的中央组织中组织所有这些。 即开发者发送拉动请求并将它们拉入开发分支,您不必将它们拉入主控。 在您的开发分支中,您可以测试合并的代码,看它是否符合您的需求。 如果您不喜欢它,则不必将其与生产和/或主分支合并。 在git中,你使用分支机构来理清好事和坏事。 你批准的所有东西都合并

包括指针中的对象,指针是数组中对象的项目(Include object from pointer which is item of an object within an array)

如果您的数据结构如下: {"ingredients": [ {"__type":"Pointer", "className":"Unit", "objectId":"FKxndF7X9H"}, {"__type":"Pointer", "className":"Unit", "objectId":"mXVGZDglZN"} ] } 然后你可以通过只使用recipeQuery.include("ingredients");来获取这些单位recipeQuery.inclu

绑定的ComboBoxItem不显示(Bound ComboBoxItem not displaying)

如果SelectedItem在绑定点没有包含在ItemsSource中,那么ComboBox有一个将SelectedItem设置回null的恶习。 尝试并暂缓更新SelectedItem直到填充ItemsSource 。 If SelectedItem is not contained within ItemsSource at the point of binding, then ComboBox has a nasty habit of setting SelectedItem back t

在地图矢量中使用地图中的查找(How can I use find() on a map inside a vector of maps?)

迭代器就像一个指向vector的指针,所以使用arror,即间接,表示法: vecIter->find("alpha"); The iterator acts like a pointer to the vector, so use the arrow, i.e., indirection, notation: vecIter->find("alpha");

Rails验证attribute_a是否存在或者attribute_b存在(Rails validate that attribute_a exists OR attribute_b exists)

validates_numericality_of :charge, allow_nil: true validates_numericality_of :payment, allow_nil: true validate :charge_xor_payment private def charge_xor_payment if !(charge.blank? ^ payment.blank?) errors.add(:base, "Specify a charge or a

使用带有SSL的glassfish gem(或其他web服务器)(Using glassfish gem (or other webserver) with SSL)

编辑 (对于downvote的人) 有些问题有更深层次的问题可以解决。 在这种情况下需要一个带有ssl的jruby启用的Web服务器。 如果您的意见与我的意见不同,请自行发帖, 请不要低估一个真正解决某人问题的答案。 或者更糟糕的是 - 没有评论就投票。 谢谢。 结束编辑 我使用jetty-rails gem并在其中编码SSL支持。 如果你选择使用jetty-rails,你可以按照说明添加SSL。 确保使用jetty-rails版本0.6,因为当前0.8.1是错误的。 我敢肯定,玻璃鱼也可以以类

如何执行黄瓜测试序列然后并行执行?(How to execute cucumber test serial and then in parallel?)

首先,我建议使用标记将前置条件/设置步骤移动到钩子中: project/features/support/hooks.rb : Before('@with_posted_message') do step 'I navigate to main site' step 'I login to main site' step 'I post a message' end 然后您的功能文件project/features/message.feature将如下所示: @with_post

相关文章

更多

最新问答

更多
  • jsPlumb draggable element javascript函数(jsPlumb draggable element javascript function)
  • MVC4:ViewModel(带有radiobuttonlist)在HttpPost之后为空(MVC4: ViewModel (with radiobuttonlist) is empty after HttpPost)
  • 如何在同一帐户上设置“Dev repo”(在prod和团队之间)(How to set up a “Dev repo” (between the prod and the team) on the same account)
  • 如何在tcl中将eth0配置为发送方udp端口(how to configure eth0 as a sender udp port in tcl)
  • 在main方法中进行更改后传递给构造函数的TreeMap实例的行为是什么(What is the behavior of a TreeMap instance passed into a constructor following changes in main method)
  • 在这个的一些属性不同的颜色(Different color in some properties of this)
  • CURL没有返回任何内容(CURL Not returning anything)
  • MVC5注入依赖于城堡windsor的视图(MVC5 injecting dependency on a view with castle windsor)
  • CakePHP AJAX-Call:发生错误:未定义(CakePHP AJAX-Call: An error occured: undefined)
  • 如何用.aidl扩展名创建文件?(how to create a file with .aidl extension?)
  • 无法获得全尺寸动态WordPress灯箱图像显示(Cannot get full size dynamic WordPress lightbox image to display)
  • 使用Jsoup删除元素不起作用(Removing Element with Jsoup doesn't work)
  • 交叉编译ARM的MongoDB C ++驱动程序。(Cross compiling MongoDB C++ driver for ARM. Cannot find Boost Libraries)
  • ProgressDialog没有关闭(ProgressDialog not closing)
  • 单元测试DB中的JPA插入(Unit testing JPA insertion in the DB)
  • 点击谷歌服务对话框中的更新按钮(Click on update button in check google service dialog)
  • 适用于PhoneGap Build的iOS“缺少必需的57x57图标”(“Missing required 57x57 icon” for iOS on PhoneGap Build)
  • MVC ckeditor post编辑器值内联(MVC ckeditor post editor value inline)
  • Angular 2 Pipe - 无法读取未定义的属性'toString'(Angular 2 Pipe - Cannot read property 'toString' of undefined)
  • 安装引导加载程序(Installing bootloaders)
  • 用于确定最终如何包含头文件的工具(Tool to figure out how a header file is eventually being included)
  • 在将字符串转换为int [duplicate]之前检查字符串是否不是数字(Check if string is not a number before converting it to a int [duplicate])
  • 从脚本构建db2数据库以进行构建验证的工具?(Tools to build db2 database from scripts for build verification?)
  • 在偏移之后向FileOutputStream写一个数字(Write a number to FileOutputStream after an offset)
  • Javascript RegEx仅限数字(无特殊字符)(Javascript RegEx for Numbers Only (no special characters))
  • 我可以在PHP的Linux服务器上运行新的COM(“WScript.Shell”)(Can I run new COM(“WScript.Shell”) on linux servers in PHP)
  • 在Backbone.js中放置与视图不直接相关的代码(例如广告,分析等)的位置?(Where to place code not directly related to a view (such as ads, analytics etc) in Backbone.js?)
  • 适用于Mac和PC的一般开发人员必备软件综合列表[关闭](Comprehensive List of Essential Software for General Developers on Mac and PC [closed])
  • 将语言文本转换为模型(Transformation Language Text to Model)
  • 在控制器中的两个方法之间共享变量?(Sharing variables between two methods in a controller?)