У меня есть многомерный массив, построенный из строк, который изначально создан с размером [50] [50], это слишком большой, и теперь массив заполнен нулевыми значениями, в настоящее время я пытаюсь удалите эти указанные нулевые значения, мне удалось изменить размер массива на [requiredSize] [50], но не может его уменьшить, может ли кто-нибудь помочь мне с этим? Я пробовал интернет для такого ответа, но не могу его найти.Java: изменение размера многомерного массива
Вот мой полный код тоже (я понимаю, что могут быть некоторые очень нечистые части в моем коде, я еще, чтобы очистить что-либо до)
import java.io.*;
import java.util.*;
public class FooBar
{
public static String[][] loadCSV()
{
FileInputStream inStream;
InputStreamReader inFile;
BufferedReader br;
String line;
int lineNum, tokNum, ii, jj;
String [][] CSV, TempArray, TempArray2;
lineNum = tokNum = ii = jj = 0;
TempArray = new String[50][50];
try
{
BufferedReader in = new BufferedReader(new InputStreamReader(System.in));
System.out.println("Please enter the file path of the CSV");
String fileName = in.readLine();
inStream = new FileInputStream(fileName);
inFile = new InputStreamReader(inStream);
br = new BufferedReader(inFile);
StringTokenizer tok,tok2;
lineNum = 0;
line = br.readLine();
tokNum = 0;
tok = new StringTokenizer(line, ",");
while(tok.hasMoreTokens())
{
TempArray[tokNum][0] = tok.nextToken();
tokNum++;
}
tokNum = 0;
lineNum++;
while(line != null)
{
line = br.readLine();
if (line != null)
{
tokNum = 0;
tok2 = new StringTokenizer(line, ",");
while(tok2.hasMoreTokens())
{
TempArray[tokNum][lineNum] = tok2.nextToken();
tokNum++;
}
}
lineNum++;
}
}
catch(IOException e)
{
System.out.println("Error file may not be accessible, check the path and try again");
}
CSV = new String[tokNum][50];
for (ii=0; ii<tokNum-1 ;ii++)
{
System.arraycopy(TempArray[ii],0,CSV[ii],0,TempArray[ii].length);
}
return CSV;
}
public static void main (String args[])
{
String [][] CSV;
CSV = loadCSV();
System.out.println(Arrays.deepToString(CSV));
}
}
Файл CSV выглядит следующим образом
Height,Weight,Age,TER,Salary
163.9,46.8,37,72.6,53010.68
191.3,91.4,32,92.2,66068.51
166.5,51.1,27,77.6,42724.34
156.3,55.7,21,81.1,50531.91
Может потребоваться любой размер, но это всего лишь образец файла.
Мне просто нужно изменить размер массива так, чтобы он не содержал никаких нулевых значений.
Я также понимаю, что список будет лучшим вариантом здесь, но это невозможно из-за внешних ограничений. Это может быть только многомерный массив.
При использовании списка не вариант, вы можете иметь динамическую реализацию массива свой собственный, где вы расширить массив, как и в случае необходимости и копирование старых значений в недавно построенном массиве. Или вы можете прочитать файл дважды. Сначала найдите количество строк и столбцов, а во втором читайте, чтобы определить массив, заполните значения в массиве –