java - 在 Java 中删除二维数组中的空元素

标签 java android arrays resize

请帮帮我!, 我有这个字符串数组:

data2[3][2] = 
[[Datos Varios, Datos Empresa, null], 
[Listado2, Listado2 extendido, null], 
[Pendientes Validar, Pendientes Liquidar, Liquidados], 
[Pendientes Aprobar, Pendientes Pago, Pagados]]

我会找到一些东西来调整这个数组的大小以获得这个: 我不认识路..

data2[?][?] = 
[[Datos Varios, Datos Empresa], 
[Listado2, Listado2 extendido], 
[Pendientes Validar, Pendientes Liquidar, Liquidados], 
[Pendientes Aprobar, Pendientes Pago, Pagados]]

提前致谢!!

最佳答案

我认为您的问题可能与数组的二维结构有关,建议的链接是一维的。因此,这里是针对 2d 案例构建的建议解决方案,可对您的数据进行简单测试。

import java.util.ArrayList;

public class TestApp {

    public static void main(String[] args){

        String[][] data = 
        {{"Datos Varios", "Datos Empresa", null}, 
        {"Listado2", "Listado2 extendido", null}, 
        {"Pendientes Validar", "Pendientes Liquidar", "Liquidados"},
        {"Pendientes Aprobar", "Pendientes Pago", "Pagados"}};

        String[][] cleanedData = removeNull(data);

        System.out.println("Before");
        printArray(data);
        System.out.println("after");
        printArray( cleanedData );
    }

    public static void printArray(String[][] arr2d){
        for(String[] arr1d: arr2d){
            for(String s: arr1d){
                System.out.print(s+", ");
            }
            System.out.print("\n");
        }
    }

    public static String[][] removeNull( String[][] arr2d) {
        //
        ArrayList<ArrayList<String>> list2d = new ArrayList<ArrayList<String>>();
        //
        for(String[] arr1d: arr2d){
            ArrayList<String> list1d = new ArrayList<String>();
            for(String s: arr1d){
                if(s != null && s.length() > 0) {
                    list1d.add(s);
                }
            }
            // you will possibly not want empty arrays in your 2d array
            // so I removed them
            if(list1d.size()>0){
                list2d.add(list1d);
            }
        }
        String[][] cleanArr = new String[list2d.size()][];
        int next = 0;
        for(ArrayList<String> list1d: list2d){
            cleanArr[next++] = list1d.toArray(new String[list1d.size()]);
        }
        return cleanArr;
    }
}

关于java - 在 Java 中删除二维数组中的空元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32099750/

相关文章:

java - 在多个排序列表中高效地查找元素?

java - 如果时区与 GMT(UTC) 不同,AlarmManager 会在错误的时间发出警报

Android sslpeerunverifiedexception 没有对等证书,JSON SSL

android - Facebook session 单例使用

java - 如何查看数组

javascript - 不使用数组方法删除数组中的第一个元素

java - 如何在java中对日期进行排序

java - 插件目标的maven执行?

android - 如何检测android中某个渲染器区域内的触摸事件?

arrays - 添加多维数组的值