java中List与Map的使用
最近在搗鼓SKU算法(初步),然后用到了一堆list與map或者map與list的各種嵌套,所以借此機會來總結一些list和map的一些特性,以及一些使用的注意事項。
一、map和list的區別
? ? ? ? 首先呢,我們先簡要的說一下map與List的一些區別地方,首先呢,map就是類似于key-value形式的數據結構集合,key值可以唯一的找到一個對應的value值,然后value值可以是任何類型,或者是對象類型,因為有了這個特點,我們也可以在map中放入List,從而行成一個靠value尋找List的形式。
? ? ? ? 而List呢,是某一種類型對象的集合,可以是各種基于對象類型的對象,比如String,或者是某個實體,或者是Map都是可以的。給人的感覺是這個樣子:
? ? ? ? 因為有這種特性,所以我們在組裝數據的時候就有n多種可能性了:
二、實際應用
? ? ? ? 然而我們在實際應用的時候考慮的問題會有很多,比如第一就是我們需要如何去拿數據來用,我們的數據中哪個部分是靜態的,哪個部分又是動態不確定的,這都是很重要的。
? ? ? ? 首先我們來看,List和map雖然都是可以延伸很多個組或者對象的數據結構,但是這里面有很本質的區別,那就是map中取數據可以用key來指定取哪個,但是lsit則必須指定序號來取,并且有排序的功能。如此一來,在我們的數據數量也好,組分也好是固定的情況下的話,我們一般適用的是map來存儲,這樣我們可以直接找到并使用我們想要找的數據。例如:性別,是否存在等特性的時候經常使用這樣的數據結構來存儲,以達到可以隨時使用的目的。
? ? ? ? 但是類似于班級的人等不確定數量的元素,一般我們用List結構來存儲,因為我們可以按照不同的班級創建容量不同的學生集合,按照循環來調用學生List<Object>。如果是要一個年級的學生的話,則需要map和list配合來使用了,map中標志為年級中的每個班,而班中存儲的是List,為班里面的學生。Map<String,List<Object>>
? ? ? ? 那么什么時候用到List中套map呢?這種情況就是List中想要存儲類型或者表現形式不同的數據的時候,可以借助map來實現,比如一個map是Map<String,int>,一個是Map<String,double>用Map把類型都統一了就可以放在List中了,或者是map中是集合,但是map的數量不確定的時候。
? ? ? ?那么什么時候用List嵌套List<List<Object>>呢?這樣的時候就是有兩種因素都不確定的時候,比如商品的屬性數量還有屬性中的項目個數都不確定的時候就可以使用這種結構。
聲明:我們使用的是jsp頁面進行數據顯示的,所以查詢出來的數據需要按key取值,或者是循環顯示,所以就有了這樣的一個思考路線和數據結構的鋪墊,希望大家可以借鑒。
————————————————
版權聲明:本文為CSDN博主「王嘯tr1912」的原創文章,遵循CC 4.0 BY-SA版權協議,轉載請附上原文出處鏈接及本聲明。
原文鏈接:https://blog.csdn.net/tr1912/article/details/78997882
總結
以上是生活随笔為你收集整理的java中List与Map的使用的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 诸暨 丽水 汽车?
- 下一篇: 腾讯地图api如何根据地址获取经纬度