Java “如何简化多层结构”;“ArrayList”吗;?
我想定义许多类型为Java “如何简化多层结构”;“ArrayList”吗;?,java,arraylist,Java,Arraylist,我想定义许多类型为ArrayList 但这看起来很糟糕 我现在想到的是创建一个如下所示的类 Public class ArrayListMulti{ ArrayList<ArrayList<ArrayList<ArrayList<Integer>>>> ret; public void ArrayListMulti(){ ret = new ArrayList<>(); } public
ArrayList
但这看起来很糟糕
我现在想到的是创建一个如下所示的类
Public class ArrayListMulti{
ArrayList<ArrayList<ArrayList<ArrayList<Integer>>>> ret;
public void ArrayListMulti(){
ret = new ArrayList<>();
}
public ArrayList<ArrayList<ArrayList<ArrayList<Integer>>>> getTheArrayList(){
return ret;
}
}
公共类ArrayListMulti{
ArrayList ret;
public void ArrayListMulti(){
ret=新的ArrayList();
}
公共阵列列表getTheArrayList(){
返回ret;
}
}
但是使用这个方法,每次我想要访问ret
值时,我必须调用gettheraylist
方法
有没有更简单的方法
提前感谢~使用多维数组,如3D数组或更多使用多维数组,如3D数组或更多您可以扩展
数组列表
公共类ArrayListMulti扩展了ArrayList{}
您可以扩展ArrayList
公共类ArrayListMulti扩展了ArrayList{}
你真的需要这么深的数组列表吗?如果是这样,您应该考虑为ArrayListMulti
类提供方便的API。例如,您可以添加如下方法:
public List<List<List<Integer>>> get(int i) {
return ret.get(i);
}
public List<List<Integer>> get(int i, int j) {
return ret.get(i).get(j);
}
...
公共列表获取(int i){
返回ret.get(i);
}
公共列表获取(inti,intj){
返回ret.get(i).get(j);
}
...
等等。(不要忘记检查嵌套列表是否为空。)
还有一个小技巧:在定义类字段时使用接口,而不是类(在您的情况下,
List>ret
。如果您想更改List
接口的实现(例如,将ArrayList
替换为LinkedList
),它将使您的代码更加健壮.您真的需要这么深的数组列表吗?如果需要,您应该考虑为您的ArrayListMulti
类提供方便的API。例如,您可以添加如下方法:
public List<List<List<Integer>>> get(int i) {
return ret.get(i);
}
public List<List<Integer>> get(int i, int j) {
return ret.get(i).get(j);
}
...
公共列表获取(int i){
返回ret.get(i);
}
公共列表获取(inti,intj){
返回ret.get(i).get(j);
}
...
等等。(别忘了检查嵌套列表是否为空。)
还有一个小技巧:在定义类字段时使用接口,而不是类(在您的例子中是
List>ret
。如果您想更改List
接口的实现(例如,将ArrayList
替换为LinkedList
)。int[]arr=new int[10][4][3];int[]arr=new int[10][4][3];取决于您的用例。如果您将其用作矩阵或图形/树,则有专用java库,如commons math等。这取决于您的用例。如果您将其用作矩阵或图形/树,则有专用java库,如commons math等。