从枚举构造List <T>

业余爱好者

归结为,我试图基于枚举器List<T>java.util.List程序包中构造一个,但是这里有个问题-我不希望第一个值出现在列表中。我想出的办法...好吧...这不是一件好事。

这是我正在使用的代码:

Arrays.asList(Arrays.asList(MyEnum.values()).remove(0));

这有效地从我的枚举中创建了一个List <>,并删除了第一个值,然后尝试使用创建的列表创建另一个列表。

实际上,这可能是正确的方法,但是只是看着它就在尖叫“效率低下”。我在一个我参加过的论坛上向几个人展示了它,他们都说这是多么的丑陋,并笑了起来。但是,他们中没有一个会/不会提供更好的方法来进行此操作。

博安

我认为代码并不丑陋或效率低下。更大的问题是它不起作用,因为由返回的列表Arrays.asList由基础数组支持,因此具有固定大小。

您可以使用subList而不是remove使其工作:

List<MyEnum> list = Arrays.asList(MyEnum.values());
list = list.subList(1, list.size());

这意味着结果列表实际上包含两个列表对象(theasList和its subList),它们可能会或可能不会困扰您。但是,您可以ArrayList从结果列表中创建一个单位

list = new ArrayList<>(list);

如果您希望最小化对象分配,请循环这些值并将它们直接添加到单个列表中:

MyEnum[] values = MyEnum.values();
List<MyEnum> list = new ArrayList<>(values.length - 1);
for (int i = 1; i < values.length; i++)
    list.add(values[i]);

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

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

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

List <T> .ToList()是否枚举集合

来自分类Dev

为什么List <T>的枚举数是公共的?

来自分类Dev

List <T> C#的子类的构造方法

来自分类Dev

如何使用 BiConsumer<R, T> 作为构造函数参数创建枚举

来自分类Dev

通用构造函数接受类型T的类对象,并返回T,这次T是一个List

来自分类Dev

使用List <T>参数构造HashSet <T>时允许重复吗?

来自分类Dev

枚举Rust中的构造

来自分类Dev

枚举Rust中的构造

来自分类Dev

枚举值的构造顺序

来自分类Dev

T型构造函数

来自分类Dev

为什么List <T>的构造函数没有采用params参数?

来自分类Dev

编译List <T>的构造函数时,“ CLR检测到无效程序”

来自分类Dev

如何使用具有 List<T> 参数的构造函数解析类?

来自分类Dev

List <T>与IEnumerable <T>

来自分类Dev

List <T>与IEnumerable <T>

来自分类Dev

List <T>构造函数(IEnumerable <T>)不接受从Array.CreateInstance(Type,Int32)创建的数组

来自分类Dev

从T *指针构造std :: vector <T>吗?

来自分类Dev

尽管满足所有约束,为什么我不能将List <T>传递给通用构造函数参数?

来自分类Dev

C#用默认构造函数的另一个类的字符串填充List <T>

来自分类Dev

T4获得枚举成员的价值

来自分类Dev

从T类型获取枚举值的描述

来自分类Dev

Ninject工厂基于枚举创建T

来自分类Dev

将枚举器[T]转换为列表[T]

来自分类Dev

将枚举器[T]转换为列表[T]

来自分类Dev

对于整数或枚举类型,T t {x}与T t = {x}之间的差异?

来自分类Dev

出现错误“无法将构造函数实例化为预期的类型;找到了:(T1,T2)必需:List [(Char,Int)]”

来自分类Dev

构造函数的原型可以枚举吗?

来自分类Dev

枚举类型作为构造函数中的参数

来自分类Dev

带有开关状态的构造函数的枚举

Related 相关文章

  1. 1

    List <T> .ToList()是否枚举集合

  2. 2

    为什么List <T>的枚举数是公共的?

  3. 3

    List <T> C#的子类的构造方法

  4. 4

    如何使用 BiConsumer<R, T> 作为构造函数参数创建枚举

  5. 5

    通用构造函数接受类型T的类对象,并返回T,这次T是一个List

  6. 6

    使用List <T>参数构造HashSet <T>时允许重复吗?

  7. 7

    枚举Rust中的构造

  8. 8

    枚举Rust中的构造

  9. 9

    枚举值的构造顺序

  10. 10

    T型构造函数

  11. 11

    为什么List <T>的构造函数没有采用params参数?

  12. 12

    编译List <T>的构造函数时,“ CLR检测到无效程序”

  13. 13

    如何使用具有 List<T> 参数的构造函数解析类?

  14. 14

    List <T>与IEnumerable <T>

  15. 15

    List <T>与IEnumerable <T>

  16. 16

    List <T>构造函数(IEnumerable <T>)不接受从Array.CreateInstance(Type,Int32)创建的数组

  17. 17

    从T *指针构造std :: vector <T>吗?

  18. 18

    尽管满足所有约束,为什么我不能将List <T>传递给通用构造函数参数?

  19. 19

    C#用默认构造函数的另一个类的字符串填充List <T>

  20. 20

    T4获得枚举成员的价值

  21. 21

    从T类型获取枚举值的描述

  22. 22

    Ninject工厂基于枚举创建T

  23. 23

    将枚举器[T]转换为列表[T]

  24. 24

    将枚举器[T]转换为列表[T]

  25. 25

    对于整数或枚举类型,T t {x}与T t = {x}之间的差异?

  26. 26

    出现错误“无法将构造函数实例化为预期的类型;找到了:(T1,T2)必需:List [(Char,Int)]”

  27. 27

    构造函数的原型可以枚举吗?

  28. 28

    枚举类型作为构造函数中的参数

  29. 29

    带有开关状态的构造函数的枚举

热门标签

归档