第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

哪一個更有效,一個for-每個循環(huán),還是一個迭代器

哪一個更有效,一個for-每個循環(huán),還是一個迭代器

Go
慕田峪7331174 2019-12-16 12:12:00
哪一個更有效,一個for-每個循環(huán),還是一個迭代器?哪一種方式是遍歷集合最有效的方法?List<Integer>  a = new ArrayList<Integer>();for (Integer integer : a) {   integer.toString();}或List<Integer>  a = new ArrayList<Integer>();for (Iterator iterator = a.iterator(); iterator.hasNext();) {    Integer integer = (Integer) iterator.next();    integer.toString();}請注意,這不是與這,這個, 這,這個, 這,這個,或這,這個雖然最后一個問題的答案之一已經(jīng)接近尾聲。這不是一個欺騙的原因,因為其中大多數(shù)都是比較循環(huán),您在其中調(diào)用。get(i)循環(huán)內(nèi)部,而不是使用迭代器。如上所建議的元我將張貼我對這個問題的答案。
查看完整描述

3 回答

?
繁花如伊

TA貢獻2012條經(jīng)驗 獲得超12個贊

區(qū)別不在于性能,而在于能力。當直接使用引用時,您比顯式使用迭代器(例如List.iterator()與List.listIterator(),盡管在大多數(shù)情況下它們返回相同的實現(xiàn))更強大。您還可以在循環(huán)中引用Iterator。這允許您在不獲取ConcurrentModificationException的情況下從集合中刪除項。

G.

這沒問題:

Set<Object> set = new HashSet<Object>();// add some items to the setIterator<Object> setIterator = set.iterator();while(setIterator.hasNext()){
     Object o = setIterator.next();
     if(o meets some condition){
          setIterator.remove();
     }}

這不是,因為它將引發(fā)并發(fā)修改異常:

Set<Object> set = new HashSet<Object>();// add some items to the setfor(Object o : set){
     if(o meets some condition){
          set.remove(o);
     }}



查看完整回答
反對 回復 2019-12-19
?
慕仙森

TA貢獻1827條經(jīng)驗 獲得超8個贊

為了擴展Paul自己的答案,他已經(jīng)證明了字節(jié)碼在特定的編譯器上是相同的(大概是Sun的javac?)但是不同的編譯器不是生成相同的字節(jié)碼,對嗎?為了了解兩者之間的實際區(qū)別,讓我們直接進入源代碼,檢查Java語言規(guī)范,特別是14.14.2,“強化陳述”:

增強for語句等效于基本語句。for表格說明:

for (I #i = Expression.iterator(); #i.hasNext(); ) {
    VariableModifiers(opt) Type Identifier = #i.next();    
    Statement }

換句話說,JLS要求兩者是等價的。從理論上講,這可能意味著字節(jié)碼的邊際差異,但實際上,增強的for循環(huán)需要:

  • 調(diào)用

    .iterator()

    方法
  • 使用

    .hasNext()

  • 通過以下方式使局部變量可用

    .next()

因此,換句話說,就所有實際目的而言,字節(jié)碼將是相同的,或幾乎相同的。很難想象編譯器實現(xiàn)會導致兩者之間的任何顯著差異。



查看完整回答
反對 回復 2019-12-19
  • 3 回答
  • 0 關注
  • 757 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網(wǎng)微信公眾號