java - 我可以保证 HashMap 的 entrySet() 的这种排序吗?
问题描述
我正在扩展 aHashMap
以实现一个记录方程求解步骤的类:
public class SolutionSteps extends HashMap<Integer, String>
{
private int currentStep;
public SolutionSteps ()
{
super();
currentStep = 1;
}
public final void addStep (@NotNull final String value)
{
put(currentStep, value);
currentStep++;
}
@Override
@NotNull
public final String toString ()
{
StringBuilder sb = new StringBuilder(50 * size());
for(Entry<Integer, String> entry : entrySet())
{
sb.append(entry.getKey()).append(": " ).append(entry.getValue()).append('\n');
}
return sb.toString().trim();
}
}
到目前为止,我在测试时这些条目的顺序没有问题 - 我将添加测试条目,并将toString()
以正确的顺序和编号打印出来,即
SolutionSteps steps = new SolutionSteps();
steps.addStep("First");
steps.addStep("Second");
steps.addStep("Third");
steps.addStep("Fourth");
steps.addStep("Fifth");
将按预期顺序生成输出:
1: First
2: Second
3: Third
4: Fourth
5: Fifth
我的问题是,输入集的这种排序是否得到保证?
解决方案
推荐阅读
- javascript - XMLHttpRequest 通过 onReadyStateChange 接收 2 个响应
- c# - 是否有代码可以让我在 linq 中获取以下 sql 查询的结果?
- javascript - 从子组件和父组件中的数组映射数据
- c# - Nopcommerce 视图未更新
- java - JVM 的 GuardedString 和内存持久性
- html - 如何在保持纵横比的同时在 CSS 中放大 Img?
- ruby-on-rails - 如何在创建循环 Rails/Ruby 中引用先前创建的对象
- javascript - 画布上下文属性以防止硬件加速渲染?
- python - 如何通过考虑前 2 个观察值的平均值来填充 NaN 值
- laravel-5 - 如何修复laravel中未定义的变量错误