由enum和long as ArrayList组成的Java两项元组
我希望有一个由两项元组组成的数组列表,它由一个由enum和long as ArrayList组成的Java两项元组,java,arraylist,enums,Java,Arraylist,Enums,我希望有一个由两项元组组成的数组列表,它由一个enum值和一个long值组成 我很好奇是否需要为此创建一个POJO,然后创建该类的数组列表,或者是否有像ArrayList这样更简单的方法 如果第二个选项是可能的,那么如何声明和添加可用项的示例是什么?第二个选项是不可能的。ArrayList只有一个模板参数 你能做的是: class MyClass { EnumClassName name; long l; ... // getters and setters }
enum
值和一个long
值组成
我很好奇是否需要为此创建一个POJO
,然后创建该类的数组列表,或者是否有像ArrayList
这样更简单的方法
如果第二个选项是可能的,那么如何声明和添加可用项的示例是什么?第二个选项是不可能的。ArrayList只有一个模板参数 你能做的是:
class MyClass {
EnumClassName name;
long l;
...
// getters and setters
}
然后按如下方式声明数组列表:
List<MyClass> list = new ArrayList<MyClass>();
List List=new ArrayList();
第二个选项不可能。ArrayList只有一个模板参数
你能做的是:
class MyClass {
EnumClassName name;
long l;
...
// getters and setters
}
然后按如下方式声明数组列表:
List<MyClass> list = new ArrayList<MyClass>();
List List=new ArrayList();
如果你真的想得到一个Tuple
类,你可以使用
ArrayList<Map.Entry<EnumClassName, Long>> list; // by the way, you cannot use primitive types, such as long as generic parameters, that's why Long instead of long
但是Java正确的方法是为它创建一个新类:
public class MyTupleName { // also, you should use more convenient name for the case
EnumClassName e;
long l; // names are also the subject to change alongside with getters
public MyTupleName (EnumClassName e, long l) {
this.e = e;
this.l = l;
}
public EnumClassName getE() {
return e;
}
public long getL() {
return l;
}
}
其用途是:
int index = ...//some index
EnumClassName e = list.get(index).getKey();
long l = list.get(index).getValue(); // autounboxed value
ArrayList <MyTupleName> list = ...
int index = ...
MyTupleName tuple = list.get(index);
EnumClassName e = tuple.getE();
long l = tuple.getL();
ArrayList=。。。
int索引=。。。
MyTupleName tuple=list.get(索引);
EnumClassName e=tuple.getE();
long l=tuple.getL();
如果你真的想得到一个Tuple
类,你可以使用
ArrayList<Map.Entry<EnumClassName, Long>> list; // by the way, you cannot use primitive types, such as long as generic parameters, that's why Long instead of long
但是Java正确的方法是为它创建一个新类:
public class MyTupleName { // also, you should use more convenient name for the case
EnumClassName e;
long l; // names are also the subject to change alongside with getters
public MyTupleName (EnumClassName e, long l) {
this.e = e;
this.l = l;
}
public EnumClassName getE() {
return e;
}
public long getL() {
return l;
}
}
其用途是:
int index = ...//some index
EnumClassName e = list.get(index).getKey();
long l = list.get(index).getValue(); // autounboxed value
ArrayList <MyTupleName> list = ...
int index = ...
MyTupleName tuple = list.get(index);
EnumClassName e = tuple.getE();
long l = tuple.getL();
ArrayList=。。。
int索引=。。。
MyTupleName tuple=list.get(索引);
EnumClassName e=tuple.getE();
long l=tuple.getL();
Apache Commons有,这正是您想要的。你会把它当作
ArrayList<ImmutablePair<EnumClass,Long>>
ArrayList
还有一个版本不是不可变的,但您可能需要这个版本。Apache Commons有,这正是您想要的。你会把它当作
ArrayList<ImmutablePair<EnumClass,Long>>
ArrayList
还有一个版本不是不可变的,但您可能需要这个版本。您只能使用单个参数对
ArrayList
进行参数化。我想POJO是更清晰的选择。您只能使用单个参数对ArrayList
进行参数化。我想POJO会是更清晰的选择。