[英]Which collection is better to store data from multi-dimensional array?
我有一個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.
你確定你有多維數組嗎? 因為我查找您的示例數據("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);
}
對於Multi-Dimensional數組,我使用的是HashMap
而對於One-Dimensional數組,我使用的是ArrayList
。 如果您仍然不理解這兩者,請閱讀此內容 。 請糾正我如果我錯了
與任何問題一樣,您有多種數據結構選項,您必須根據它們的權衡(時間,空間)做出設計決策。
立即想到的兩個數據結構是ArrayList
和LinkedList
。 使用LinkedList
您可以在O(1) constant time
從任何位置insert
和remove
元素。 使用ArrayList
這將是線性時間O(n)。
但是,訪問ArrayList
的元素是常量時間(您可以將其索引)。 然而,通常使用LinkedList
您需要遍歷它。 盡管可以通過hashing
每個元素來避免LinkedList
這個問題,因此您可以在amortized constant time
找到linked list
中的特定節點。 當然,擁有hash
和linked list
是比array
更快的解決方案,盡管在空間方面有更多的開銷。
有關這些數據結構的更多信息: 數組 , 鏈接列表 , 哈希表
這些數據結構的Java
實現: ArrayList , LinkedList , Hash表
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.