java面試題及答案整理 arraylist和hashmap的區(qū)別?
arraylist和hashmap的區(qū)別?它們之間的區(qū)別在于ArrayList是有序的,這確保了元素按一定的順序保存,而HashMap不需要存儲,而是以鍵值對的形式。ArrayList:是list c
arraylist和hashmap的區(qū)別?
它們之間的區(qū)別在于ArrayList是有序的,這確保了元素按一定的順序保存,而HashMap不需要存儲,而是以鍵值對的形式。ArrayList:是list collection的一個實現(xiàn)類,它動態(tài)地存儲多個對象。集合的長度隨集合中對象的數(shù)量而變化。HashMap:map的一個實現(xiàn)類,它存儲一對鍵值。按鍵查找值。(鍵值對齊:一個鍵最多對應(yīng)一個值。地圖中的鍵不能重復(fù),不能是重復(fù)的對象。)擴(kuò)展:列表使用數(shù)組結(jié)構(gòu)存儲數(shù)據(jù),高效搜索,低效修改。數(shù)組和列表的區(qū)別在于,在初始化數(shù)組時必須聲明數(shù)據(jù)的數(shù)量,而列表則會根據(jù)添加的數(shù)據(jù)數(shù)量而變化。
java中map和list的區(qū)別?
1. Java中的Collection包括三個類別:set、list和map,它們都在java.util文件Package、set、list和map是接口,它們有自己的實現(xiàn)類。set的實現(xiàn)類主要包括HashSet和TreeSet,list的實現(xiàn)類主要包括ArrayList,map的實現(xiàn)類主要包括HashMap和treemap。
2. 列表中的對象根據(jù)索引位置排序,可以有重復(fù)的對象,并且可以根據(jù)集合中對象的索引位置檢索對象,例如列表.獲取(i) 方法獲取列表集合中的元素。列表是一個有序的集合,可以精確地控制每個元素的插入位置。用戶可以使用索引(元素在列表中的位置,類似于數(shù)組下標(biāo))訪問列表中的元素,這類似于Java的數(shù)組。列表允許相同的元素。實現(xiàn)列表接口的常用類有LinkedList、ArrayList、vector和stack。
3. 映射中的每個元素都包含一個鍵對象和一個值對象,它們成對出現(xiàn)。鍵對象不能復(fù)制,值對象可以復(fù)制。Map提供從鍵到值的映射。映射不能包含同一個鍵,每個鍵只能映射一個值。地圖界面提供了三組視圖。映射的內(nèi)容可以看作是一組鍵集、一組值集或一組鍵值映射。
List和ArrayList,Map和HashMap的區(qū)別?
一個列表
[{f}城市名稱=徐州,CNT=1141},{f}城市名稱=鎮(zhèn)江,CNT=577}
]一個地圖變量的內(nèi)部數(shù)據(jù)結(jié)構(gòu)
{泰州無邊界=7,宿遷無邊界=26,無錫省邊界=6,常州無邊界=10,淮安市邊界=70,南京null=21}
不能在JSP頁${列表大小}取列表的長度,但是
列表的長度是:${FN:length(list)}
]list是接口,列表功能是有序的,它保證元素按一定的順序保存。
ArrayList是它的實現(xiàn)類,它是一個由數(shù)組實現(xiàn)的列表。
map是接口,map功能是根據(jù)一個對象來查找對象。
HashMap是它的實現(xiàn)類,hash table實現(xiàn)的map是對象的hashcode(hashcode)()是對象的方法),用于快速哈希查找。(對于哈希查找,請參閱>)
通常,如果沒有必要,建議的代碼只處理列表和映射接口。
例如,list=new ArrayList()
原因是列表類似于一般實現(xiàn)。如果要更改列表的類型,只需:
list=new LinkedList()//LinkedList也是list的實現(xiàn)類和ArrayList的兄弟類
這樣就不需要修改其他代碼,這是接口編程的優(yōu)雅之處
另一個例子是class的方法,下面的語句是:
private void domayaction(list list){}
這樣,這個方法可以處理實現(xiàn)list接口的所有類,并且在一定程度上實現(xiàn)泛型函數(shù)
如果您覺得ArrayList和HashMap的性能不能滿足您的需要,您可以通過實現(xiàn)列表、映射(或集合)自定義自定義類。]~java.util文件
在包中,set、list和map是接口。集合中的對象沒有按特定方式排序,并且沒有重復(fù)的對象。但是它的一些實現(xiàn)類可以用特定的方式對集合中的對象進(jìn)行排序,比如TreeSet類,它可以在默認(rèn)情況下或通過實現(xiàn)進(jìn)行排序java.util.Comparator比較程序
接口定義排序方法。列表中的對象根據(jù)索引位置排序,可以有重復(fù)的對象,并且可以根據(jù)集合中對象的索引位置檢索對象,例如列表.獲?。╥) 方法獲取列表集合中的元素。映射中的每個元素都包含一個鍵對象和一個值對象,它們成對出現(xiàn)。鍵對象不能復(fù)制,值對象可以復(fù)制。map的功能和方法:method put(object key,object value)添加一個“value”(你想要什么)和一個與“value”關(guān)聯(lián)的“key”(用它來查找)。方法get(objectkey)返回與給定鍵關(guān)聯(lián)的值。您可以使用containskey()和containsvalue()來測試映射是否包含“鍵”或“值”。標(biāo)準(zhǔn)Java類庫包含幾個不同的映射:HashMap、treemap、LinkedHashMap、weakhashmap、identityhashmap。它們具有相同的基本接口圖,但在行為、效率、排序策略、保存對象的生命周期、確定“鍵”等價性的策略等方面有所不同。執(zhí)行效率是map的一個大問題。如果您看看get()的作用,就會明白為什么在ArrayList中搜索“keys”相當(dāng)慢。這就是HashMap加速的地方。HashMap使用一個稱為哈希碼的特殊值,而不是緩慢地搜索鍵。哈希代碼是一個相對唯一的int值,用于表示對象。它是通過轉(zhuǎn)換對象的某些信息而生成的。所有Java對象都可以生成哈希代碼,因為hashcode()是在基類對象中定義的方法。