将逗号分隔的字符串转换为HashSet

最佳素数

那么,您将如何进行转换

String csv = "11,00,33,66,44,33,22,00,11";

以最快最优化的方式添加到哈希集。

这是用于用户标识的列表。

更新资料

我运行了通过测试程序提供的所有答案,对于较大的CSV字符串,每种方法被调用500,000次。该测试连续进行了5次(以防程序启动减慢了初始方法的速度),以毫秒(ms)为单位,我得到了以下信息:

Method One Liner->  6597
Method Split&Iterate->  6090
Method Tokenizer->  4306
------------------------------------------------
Method One Liner->  6321
Method Split&Iterate->  6012
Method Tokenizer->  4227
------------------------------------------------
Method One Liner->  6375
Method Split&Iterate->  5986
Method Tokenizer->  4340
------------------------------------------------
Method One Liner->  6283
Method Split&Iterate->  5974
Method Tokenizer->  4302
------------------------------------------------
Method One Liner->  6343
Method Split&Iterate->  5920
Method Tokenizer->  4227
------------------------------------------------


static void method0_oneLiner() {
        for (int j = 0; j < TEST_TIMES; j++) {
            Set<String> hashSet = new HashSet<String>(Arrays.asList(csv
                    .split(",")));
        }
    }

    // ———————————————————————————————–

    static void method1_splitAndIterate() {

        for (int j = 0; j < TEST_TIMES; j++) {
            String[] values = csv.split(",");
            HashSet<String> hSet = new HashSet<String>(values.length);
            for (int i = 0; i < values.length; i++)
                hSet.add(values[i]);
        }
    }

    static void method2_tokenizer() {

        for (int j = 0; j < TEST_TIMES; j++) {
            HashSet<String> hSet = new HashSet<String>();
            StringTokenizer st = new StringTokenizer(csv, ",");
            while (st.hasMoreTokens())
                hSet.add(st.nextToken());
        }
    }
财富

其他6个答案很棒,因为它们是最直接的转换方式。

但是,由于String.split()涉及到正则表达式,并且Arrays.asList正在执行冗余转换,因此您可能希望以此方式进行操作,这可能会稍微提高性能。

如果您对将要拥有多少个物品有一个大致的了解,请进行编辑,请使用HashSet构造函数参数以避免不必要的调整大小/散列:

HashSet<String> myHashSet = new HashSet(500000);  // Or a more realistic size
StringTokenizer st = new StringTokenizer(csv, ",");
while(st.hasMoreTokens())
   myHashSet.add(st.nextToken());

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

Scala将逗号分隔的字符串转换为Array

来自分类Dev

将范围转换为逗号分隔的字符串

来自分类Dev

将逗号分隔的字符串转换为GetFiles SearchPattern

来自分类Dev

将逗号分隔的字符串转换为日期时间

来自分类Dev

将数组转换为逗号分隔的字符串

来自分类Dev

将逗号分隔的字符串转换为GetFiles SearchPattern

来自分类Dev

将逗号分隔的字符串转换为日期时间

来自分类Dev

将逗号分隔的字符串转换为列表

来自分类Dev

将逗号分隔的字符串转换为数组

来自分类Dev

将数组转换为逗号分隔的字符串

来自分类Dev

将逗号分隔的字符串转换为 JSON

来自分类Dev

通过附加串联将字符串数组转换为逗号分隔的字符串

来自分类Dev

将字符串或列表的映射转换为值的字符串或逗号分隔的值

来自分类Dev

PHP将逗号分隔的字符串转换为点或符号分隔的值,以存储在MySql中

来自分类Dev

如何将逗号分隔的字符串转换为对象内的分隔数组?

来自分类Dev

将逗号分隔的字符串转换为带单引号的字符串列表

来自分类Dev

如何将逗号分隔的字符串或/ n分隔的字符串转换为jquery中的列表?

来自分类Dev

在熊猫中将行转换为逗号分隔的字符串

来自分类Dev

将逗号分隔的字符串转换为嵌套数组,RegExp?

来自分类Dev

如何将逗号分隔的字符串转换为数据数组?

来自分类Dev

将逗号分隔的字符串转换为没有中间容器的列表

来自分类Dev

T-SQL如何将逗号分隔的数字字符串转换为整数

来自分类Dev

如何将字符串转换为以红宝石分隔的逗号?

来自分类Dev

如何将整数转换为逗号分隔的字符串

来自分类Dev

将列表转换为双引号逗号分隔的字符串

来自分类Dev

用逗号分隔的字符串将数字转换为JavaScript中的整数数组

来自分类Dev

将REAL的数组行转换为逗号分隔的字符串

来自分类Dev

如何使用C#将逗号分隔的字符串转换为小写

来自分类Dev

PHP将用方括号将逗号分隔的字符串转换为数组

Related 相关文章

  1. 1

    Scala将逗号分隔的字符串转换为Array

  2. 2

    将范围转换为逗号分隔的字符串

  3. 3

    将逗号分隔的字符串转换为GetFiles SearchPattern

  4. 4

    将逗号分隔的字符串转换为日期时间

  5. 5

    将数组转换为逗号分隔的字符串

  6. 6

    将逗号分隔的字符串转换为GetFiles SearchPattern

  7. 7

    将逗号分隔的字符串转换为日期时间

  8. 8

    将逗号分隔的字符串转换为列表

  9. 9

    将逗号分隔的字符串转换为数组

  10. 10

    将数组转换为逗号分隔的字符串

  11. 11

    将逗号分隔的字符串转换为 JSON

  12. 12

    通过附加串联将字符串数组转换为逗号分隔的字符串

  13. 13

    将字符串或列表的映射转换为值的字符串或逗号分隔的值

  14. 14

    PHP将逗号分隔的字符串转换为点或符号分隔的值,以存储在MySql中

  15. 15

    如何将逗号分隔的字符串转换为对象内的分隔数组?

  16. 16

    将逗号分隔的字符串转换为带单引号的字符串列表

  17. 17

    如何将逗号分隔的字符串或/ n分隔的字符串转换为jquery中的列表?

  18. 18

    在熊猫中将行转换为逗号分隔的字符串

  19. 19

    将逗号分隔的字符串转换为嵌套数组,RegExp?

  20. 20

    如何将逗号分隔的字符串转换为数据数组?

  21. 21

    将逗号分隔的字符串转换为没有中间容器的列表

  22. 22

    T-SQL如何将逗号分隔的数字字符串转换为整数

  23. 23

    如何将字符串转换为以红宝石分隔的逗号?

  24. 24

    如何将整数转换为逗号分隔的字符串

  25. 25

    将列表转换为双引号逗号分隔的字符串

  26. 26

    用逗号分隔的字符串将数字转换为JavaScript中的整数数组

  27. 27

    将REAL的数组行转换为逗号分隔的字符串

  28. 28

    如何使用C#将逗号分隔的字符串转换为小写

  29. 29

    PHP将用方括号将逗号分隔的字符串转换为数组

热门标签

归档