You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Scala技术问题:如何按Key排序并打印Properties属性?

解决方案:按键排序打印Properties键值对

没问题,要实现按键排序后打印java.util.Properties的键值对,咱们只需要把无序的Properties集合转换成有序结构,再遍历输出就行。这里给你两种实用的实现方式:

方案1:转换为Scala集合后排序遍历

先把Properties的键值对集合转换成Scala可操作的集合,排序后直接遍历打印:

import java.util.Properties
import scala.jdk.CollectionConverters._  // Scala 2.13+ 推荐用这个;Scala 2.12及以下用 scala.collection.JavaConverters._

val props = new Properties()
// 先加载你的属性,比如 props.load(new FileInputStream("config.properties"))

props.entrySet().asScala
  .toSeq
  .sortBy(entry => entry.getKey.toString)  // 按键的字符串形式排序
  .foreach(entry => println(s"|${entry.getKey}| : ${entry.getValue}"))

说明:

  • entrySet().asScala:把Java的EntrySet转换成Scala的可遍历集合,方便后续操作
  • sortBy(_.getKey.toString):因为Properties的key本质都是字符串(虽然API定义是Object),所以转成字符串后排序,保证顺序正确
  • 最后用foreach按排序后的顺序打印键值对

方案2:先排序key集合,再逐个取值打印

如果你更倾向于先处理key,再根据key获取对应的值,也可以用这种方式:

import java.util.Properties
import scala.jdk.CollectionConverters._

val props = new Properties()
// 加载属性...

props.keySet().asScala
  .toSeq
  .sortBy(_.toString)
  .foreach(key => println(s"|$key| : ${props.get(key)}"))

这种方式先把所有key提取出来排序,再循环每个key去Properties里取值打印,效果和方案1完全一致,看你个人习惯选择就行。

内容的提问来源于stack exchange,提问作者Joe

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.25 08:25:45