有没有办法在二维数组中删除特定的行?

如何解决有没有办法在二维数组中删除特定的行?

|   可能重复:   如何删除二维数组中的行 所以我有一个二维数组String [] []数组,有9行,我想删除第五行。有没有一种方法可以告诉Java删除第五行,就像我可以轻松使用ArrayLists一样?     

解决方法

        基本数组的功能范围确实非常有限。如果您需要执行此类更复杂的操作,则最简单的方法是跳过某些List实现。 喜欢:
String[][] array;
array = new String[][]{new String[]{\"a\",\"b\",\"c\"},new String[]{\"d\",\"e\",\"f\"},new String[]{\"g\",\"h\",\"i\"}};

List<String[]> l = new ArrayList<String[]>(Arrays.asList(array));

l.remove(1);
String[][] array2 = l.toArray(new String[][]{});
    ,        使用以下代码从2d数组中删除特定行
import java.util.ArrayList;
import java.util.List;


public class RemoveRowFrom2dArray
{
    private double[][] data;

    public RemoveRowFrom2dArray(double[][] data)
    {
        int r= data.length;
        int c= data[0].length;
        System.out.println(\"....r....\"+r+\"....c....\"+c);
        this.data= new double[r][c];
        for(int i = 0; i < r; i++) {
            for(int j = 0; j < c; j++) {
                    this.data[i][j] = data[i][j];
            }
        }
    }

    /* convenience method for getting a 
       string representation of matrix */
    public String toString()
    {
        StringBuilder sb = new StringBuilder(1024);
        for(double[] row : this.data)
        {
                for(double val : row)
                {
                        sb.append(val);
                        sb.append(\" \");
                }
                sb.append(\"\\n\");
        }

        return(sb.toString());
    }

    public void removeRowsWithRowNumber(double rowNotToBeAdd)
    {
        List<double[]> rowsToKeep = new ArrayList<double[]>(this.data.length);
        for( int i =0; i<this.data.length; i++){
            if(i!=rowNotToBeAdd){
            double[] row = this.data[i];
            rowsToKeep.add(row);
            }
        }

        this.data = new double[rowsToKeep.size()][];
        for(int i=0; i < rowsToKeep.size(); i++)
        {
                this.data[i] = rowsToKeep.get(i);
        }
    }

    public static void main(String[] args)
    {
        double[][] test = { {1,2,3,4,5,6,7,8,9},{6,9,10,5},{2,{9,1,10},{5,2} };

            //make the original array and print it out          
        RemoveRowFrom2dArray m = new RemoveRowFrom2dArray(test);
        System.out.println(m);

            //remove rows with trow number 4 from the 2d array
        m.removeRowsWithRowNumber(4);
        System.out.println(m);
    }
}
    ,        好吧,如果您不想使用列表,则可以使用以下方法:
public String[][] removeRowFrom2dArray(String[][] array,int row){
    int rows = array.length;
    String[][] arrayToReturn = new String[rows-1][];
    for(int i = 0; i < row; i++)
        arrayToReturn[i] = array[i];
    for(int i = row; i < arrayToReturn.length; i++)
        arrayToReturn[i++] = array[i];
    return arrayToReturn;
}
    ,        二维数组不过是数组的数组。 因此,我们可以删除刚刚分配的空白:
 arr[4] = new String[n];
如果要完全删除第5行,则可以通过指定null来删除。 Array具有固定的长度和灵活性,就像ArrayList会在数组上附加编码一样。     

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其他元素将获得点击?
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。)
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbcDriver发生异常。为什么?
这是用Java进行XML解析的最佳库。
Java的PriorityQueue的内置迭代器不会以任何特定顺序遍历数据结构。为什么?
如何在Java中聆听按键时移动图像。
Java“Program to an interface”。这是什么意思?
Java在半透明框架/面板/组件上重新绘画。
Java“ Class.forName()”和“ Class.forName()。newInstance()”之间有什么区别?
在此环境中不提供编译器。也许是在JRE而不是JDK上运行?
Java用相同的方法在一个类中实现两个接口。哪种接口方法被覆盖?
Java 什么是Runtime.getRuntime()。totalMemory()和freeMemory()?
java.library.path中的java.lang.UnsatisfiedLinkError否*****。dll
JavaFX“位置是必需的。” 即使在同一包装中
Java 导入两个具有相同名称的类。怎么处理?
Java 是否应该在HttpServletResponse.getOutputStream()/。getWriter()上调用.close()?
Java RegEx元字符(。)和普通点?