我有一個multi-dimensional array of string
。我願意將它轉換爲某種集合類型,以便我可以根據需要添加,刪除和插入元素。在數組中,我不能刪除特定位置的元素。哪個集合更適合存儲來自多維數組的數據?
我需要這樣的集合,我可以刪除特定位置的數據,也可以在任何位置添加數據。
另外不要忘記我有多維數組,所以集合也應該能夠存儲多維數據。
哪個系列適合我的需求?
我有一個multi-dimensional array of string
。我願意將它轉換爲某種集合類型,以便我可以根據需要添加,刪除和插入元素。在數組中,我不能刪除特定位置的元素。哪個集合更適合存儲來自多維數組的數據?
我需要這樣的集合,我可以刪除特定位置的數據,也可以在任何位置添加數據。
另外不要忘記我有多維數組,所以集合也應該能夠存儲多維數據。
哪個系列適合我的需求?
ArrayList應該做你所需要的。例如:
List<List<String>> stringList = new ArrayList<List<String>>(); //A List to store a list of strings
或...
List<String[]> myNumberList = new ArrayList<List<String[]>(); //A List to store arrays of Strings.
我能夠通過使用position來從arraylist中訪問數據嗎? –
@Sachin Mhetre:'列表'按位置可訪問'集合'。[查看List的API](http://docs.oracle.com/javase/6/docs/api/java/util/List.html) –
@SachinMhetre:是的,你可以......我提供了你有一個鏈接他Javadoc ...你至少可以做的就是自己檢查出來...... – npinti
對於任何問題,你有數據結構的多種選擇,你必須根據他們的權衡設計決策(時間, 空間)。
立即想到兩個數據結構是ArrayList
和LinkedList
。用LinkedList
您可以insert
和remove
來自O(1) constant time
中任何位置的元素。用ArrayList
這將是線性時間O(n)。
但是,訪問ArrayList
中的元素是恆定時間(您可以對其進行索引)。而通常使用LinkedList
則需要遍歷它。雖然LinkedList
中的這個問題雖然可以通過hashing
中的每個元素來避免,所以您可以在amortized constant time
的linked list
中找到特定節點。當然,擁有hash
和linked list
是一個比array
更快的解決方案,儘管空間有更多的開銷。
欲瞭解更多有關這些數據結構:Arrays,Linked Lists,這些數據結構的Hash Tables
Java
實現:ArrayList,LinkedList,Hash table
我正在尋找鏈接列表,但鏈接列表支持存儲多維數組數據? –
'鏈接列表'是一個數據結構,可以容納任何類型的數據。 –
你能更清楚你的'多維'是什麼意思嗎?多少維度?你希望執行哪種數據操作? –
你確定你有多維數組?因爲我查找您的樣本數據("yes","abbbc")
它是針對一維數組。但是,讓我給你舉個例子:
// This example for multi-dimensional array of string
String[][] arrays = new String[][]{{"aa", "bb", "cc"}, {"dd", "ee", "ff"}};
Map<Integer, List<String>> map = new HashMap<>();
List<String> list;
for(int i = 0; i < arrays.length; i++) {
list = Arrays.asList(arrays[i]);
map.put(i, list);
}
for(int i = 0; i < map.size(); i++) {
for(int j = 0; j < map.get(i).size(); j++) {
System.out.println(map.get(i).get(j));
}
}
// This example for one-dimensional array of string
String[] arr = new String[] {"aa", "bb"};
List<String> listArr = Arrays.asList(arr);
for(String str : listArr) {
System.out.println(str);
}
對於多維數組我使用HashMap
和一維數組我使用ArrayList
。如果你仍然不明白這兩者之間的關係,請閱讀this。並請糾正我,如果我錯了
提供樣本數據 –
我的數據是'字符串'格式,即。 '(「是」,「abbbc」)' –
它是一個稀疏數組(即大多數單元格是空的)?你是否需要迭代所有非空元素? –