簡體   English   中英

哪個集合更適合存儲來自多維數組的數據?

[英]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 如果您仍然不理解這兩者,請閱讀此內容 糾正我如果我錯了

與任何問題一樣,您有多種數據結構選項,您必須根據它們的權衡(時間,空間)做出設計決策。

立即想到的兩個數據結構是ArrayListLinkedList 使用LinkedList您可以在O(1) constant time從任何位置insertremove元素。 使用ArrayList這將是線性時間O(n)。

但是,訪問ArrayList的元素是常量時間(您可以將其索引)。 然而,通常使用LinkedList您需要遍歷它。 盡管可以通過hashing每個元素來避免LinkedList這個問題,因此您可以在amortized constant time找到linked list中的特定節點。 當然,擁有hashlinked list是比array更快的解決方案,盡管在空間方面有更多的開銷。

有關這些數據結構的更多信息: 數組鏈接列表哈希表
這些數據結構的Java實現: ArrayListLinkedListHash表

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM