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