首页 \ 问答 \ LinkedHashSet迭代不按升序排列?(LinkedHashSet iteration not in ascending order?)

LinkedHashSet迭代不按升序排列?(LinkedHashSet iteration not in ascending order?)

在以下代码中,如果参数为{1,3,2},则在while循环中,i为1,3,2。

我已经在使用LinkedHashSet,为什么订单不是1,2,3? 我还需要做什么才能按升序进行迭代?

无法使用TreeSet因为它在o(log n)时间内add, remove, contains()

public static void iterate(int[] num) {
    LinkedHashSet<Integer> set = new LinkedHashSet<Integer>();

    for (int i : num) {
        set.add(i);
    }

    Iterator<Integer> iter = set.iterator();
    while (iter.hasNext()) {
        // WHY IS i THE SAME ORDER AS INSERATION ORDER, NOT ASSENDING ORDER?
        int i = iter.next();
    }
}

In the following code, if the parameter is {1,3,2}, in the while loop, i is 1, 3, 2.

I am already using LinkedHashSet, why is the order not 1, 2, 3? What else do I need to do to make the iteration in ascending order?

Cannot use TreeSet as it add, remove, contains() in o(log n) time.

public static void iterate(int[] num) {
    LinkedHashSet<Integer> set = new LinkedHashSet<Integer>();

    for (int i : num) {
        set.add(i);
    }

    Iterator<Integer> iter = set.iterator();
    while (iter.hasNext()) {
        // WHY IS i THE SAME ORDER AS INSERATION ORDER, NOT ASSENDING ORDER?
        int i = iter.next();
    }
}

原文:https://stackoverflow.com/questions/26910325
更新时间:2023-03-27 06:03

最满意答案

JQUERY FORMATCURRENCY PLUGIN
http://code.google.com/p/jquery-formatcurrency/


相关问答

更多
  • 您可以使用$ locale服务 在你的控制器中: $scope.currency_symbol = $locale.NUMBER_FORMATS.CURRENCY_SYM; 不过要小心! 每个语言环境都存在于自己的文件中。 生成这些文件,Google Closure Library i18n文件几乎没有人为干预。 他们至少必须暴露一个id。 通常,它们会暴露大量其他内容,例如数字和日期信息。 但Angular并不保证会出现这种情况。 ( 来源 ) 所以我建议这样的事情: $scope.currency_s ...
  • JQUERY FORMATCURRENCY PLUGIN http://code.google.com/p/jquery-formatcurrency/ JQUERY FORMATCURRENCY PLUGIN http://code.google.com/p/jquery-formatcurrency/
  • 试试这种方式 public object Convert(object value, Type targetType, object parameter, CultureInfo culture) { var dValue = value as decimal?; Thread.CurrentThread.CurrentCulture = new CultureInfo("de"); var nfi = (NumberFormatInfo)NumberFormatInfo.Curre ...
  • 这里发生的是你正在添加一个观察者,告诉我们用户何时完成编辑。 一旦发生这种情况,我们的formatCurrency方法就会更新文本字段的外观。 一旦数字字段重新启动其第一响应者状态,更改将完全生效。 - (void)viewDidLoad { [super viewDidLoad]; [[NSNotificationCenter defaultCenter] addObserver:self selec ...
  • 这是一个很好的功能在香草JS处理的事情: var format = function(num){ var str = num.toString().replace("$", ""), parts = false, output = [], i = 1, formatted = null; if(str.indexOf(".") > 0) { parts = str.split("."); str = parts[0]; } str = str. ...
  • 将它们保存为用于排序的列表或容器中的小数,并在显示时简单地使用字符串格式。 我不明白当你可以随意显示它时,需要将它们同时作为字符串和小数。 Keep them as decimals within the list or container you are using to sort, and simply use string format on them when displaying. I don't understand the need have them as both a string and ...
  • 至少在.NET中,数字格式与文化有关,而不是符号。 默认货币符号是与该文化相关的主要货币符号。 符号可以根据需要重写。 就像你的例子一样,如果我在一个字符串中嵌入一个货币值,那么我使用该字符串的文化作为格式,但是适当地覆盖货币符号。 其余格式保持原样。 另一方面,如果我正在做一个报告,所有的值都使用相同的文化进行格式化。 在这种情况下,我通常使用ISO 3字符代码而不是货币符号,尤其是涉及超过2种货币时,以避免字体问题。 Ryan对另一个问题的回答描述了C#中货币格式化的最佳实践。 At least in ...
  • 了解并理解标记在封面下使用DecimalFormat非常重要。 您可以在其javadoc中找到所有模式字符。 看来你期望的是DecimalFormat模式字符,和. 实际上也用于最终格式。 这是不真实的。 它实际上只是模式字符 (如SimpleDateFormat使用的d , M , y等)。 基本上,模式字符告诉DecimalFormat打印由给定语言环境指定的“分组分隔符”,以及等效的模式字符. 告诉DecimalFormat打印给定语言环境指定的“小数分隔符”。 在效 ...
  • 您可以使用NumberFormat.setMaximumFractionDigits和NumberFormat.setMinimumFractionDigits来控制显示的小数位数。 You can use NumberFormat.setMaximumFractionDigits and NumberFormat.setMinimumFractionDigits to control how many decimal places are shown.
  • 你实例化了2次tablesorter,一次在3dproject的桌子上一次(由于3,它很有可能失败)