唯一Java 2D阵列列表

唯一Java 2D阵列列表,java,arraylist,compression,Java,Arraylist,Compression,我正在尝试创建一个独特的2d arraylist。列数是固定的,行数应该是动态的。但是,对于第一列,我希望将类型设置为chars。其余列应为int类型。有没有办法做到这一点?我用它进行算术压缩 这就是我现在拥有的 //encoding section float low = 0; float high = 1; float range = high - low; List<int[]> rowList = new ArrayList<i

我正在尝试创建一个独特的2d arraylist。列数是固定的,行数应该是动态的。但是,对于第一列,我希望将类型设置为chars。其余列应为int类型。有没有办法做到这一点?我用它进行算术压缩

这就是我现在拥有的

    //encoding section
    float low = 0;
    float high = 1;
    float range = high - low;

    List<int[]> rowList = new ArrayList<int[]>();

    rowList.add(new int[] { 1, 2, 3 });
    rowList.add(new int[] { 4, 5, 6 });
    rowList.add(new int[] { 7, 8 });

    for (int[] row : rowList) 
    {
        System.out.println("Row = " + Arrays.toString(row));
    }   
//编码部分
低浮动=0;
浮动高=1;
浮动范围=高-低;
List rowList=new ArrayList();
添加(新的int[{1,2,3});
添加(新的int[{4,5,6});
添加(新的int[]{7,8});
对于(int[]行:行列表)
{
System.out.println(“Row=“+Arrays.toString(Row));
}   

这就是你想要的

List<Object[]> rowList = new ArrayList<Object[]>();

rowList.add(new Object[] { 'a', 5, 6 });
rowList.add(new Object[] { 'b', 5, 6 });
rowList.add(new Object[] { 7, 8 });

for (Object[] row : rowList) 
{
    System.out.println("Row = " + Arrays.toString(row));
} 

创建符合您需要的类:

public class My2DArray {
    private char[] firstColumn;
    private int[][] otherColumns;

    // + constructor, getters, setters

    @Override
    public String toString() {
        StringBuilder sb = new StringBuilder();
        for(int row = 0 ; row < firstColumn.length ; ++row) {
            sb.append(firstColumn[row]);
            for(int col = 0 ; col < otherColumns[row].length ; ++col) {
                sb.append(", ").append(otherColumns[row][col]);
            }
            sb.append(System.getProperty("line.separator"));
        }
        return sb.toString();
    }
}
公共类My2DArray{
私有字符[]第一列;
私有int[][]其他列;
//+构造函数、getter、setter
@凌驾
公共字符串toString(){
StringBuilder sb=新的StringBuilder();
for(int row=0;row
对象路由可能是最适合您的方式。特别是因为Arraylist/Arraylist不是为原语定义的。您需要使用整数类型

即使这样,您也需要两个数组列表,一个用于整数,一个用于字符

见这个问题:
了解更多信息。

您可以创建一个包装器类来强制这些类型。对于误解,我深表歉意。我希望第一列而不是第一行由所有字符组成。请看我的修改,别忘了竖起大拇指。太完美了!不知道我们可以那样做。我会竖起大拇指的!这不是应该反过来做吗?创建一个包含字符和整数数组的类
。在这里,你给一个班级分配了很多责任。
public class My2DArray {
    private char[] firstColumn;
    private int[][] otherColumns;

    // + constructor, getters, setters

    @Override
    public String toString() {
        StringBuilder sb = new StringBuilder();
        for(int row = 0 ; row < firstColumn.length ; ++row) {
            sb.append(firstColumn[row]);
            for(int col = 0 ; col < otherColumns[row].length ; ++col) {
                sb.append(", ").append(otherColumns[row][col]);
            }
            sb.append(System.getProperty("line.separator"));
        }
        return sb.toString();
    }
}