這樣的想法是有ArrayList中的父ArrayList的。每次調用該函數時,都將參考傳遞給以前的結果,以便合併它們。這只是可以實現的許多方式中的一種,但應該給你一個進一步優化的起點。
// Initialize and provide dummy input.
int requiredIndex = 5;
ArrayList<String> results = new ArrayList<String>();
csvToArray("some,column,data,with,seven,columns,only", results, requiredIndex);
csvToArray("more,data,that,came, in, just, now , and is, longer", results, requiredIndex);
csvToArray("a, short, line", results, requiredIndex);
csvToArray("last, line, of, input, which, is, correct.", results, requiredIndex);
System.out.println(results);
// output : [columns, just, is]
// Update the method as below.
public static void csvToArray(String csvData, ArrayList<String> results, int index){
if (csvData != null){
String[] splitData = csvData.split(",");
int wordCount = 0;
if(splitData.length < index)
return;
for(int i = 0; i < splitData.length; i++){
if(!(splitData[i] == null) || !(splitData[i].length() == 0)) {
ArrayList<String> individualList = new ArrayList<String>();
individualList.add(splitData[i].trim());
if(wordCount == index)
results.add(splitData[i].trim());
wordCount++;
}
}
}
}
您可能已經注意到我沒有對行數或列數進行任何限制。這是爲了滿足更廣泛的場景,但如果不是,您可能會初始化限制,以便優化內存分配。
你做了什麼? –
添加一些代碼和更多解釋什麼輸入是輸出應該是什麼。 – Hassan
你有一些代碼可以告訴我們嗎? –