亚洲精品久久久中文字幕-亚洲精品久久片久久-亚洲精品久久青草-亚洲精品久久婷婷爱久久婷婷-亚洲精品久久午夜香蕉

您的位置:首頁技術文章
文章詳情頁

java - Collections類里的swap函數,源碼為什么要新定義一個final的List型變量l指向傳入的list?

瀏覽:99日期:2023-12-04 15:41:39

問題描述

JDK1.7 源碼如下:

public static void swap(List<?> list, int i, int j) { final List l = list; l.set(i, l.set(j, l.get(i)));}

其中的這句final List l = list 有什么意義?直接操作傳進來的list不也一樣的結果嗎?

本人是自學java的新手,看到這里有點想不通,希望前輩們能幫我解惑,不勝感謝!

問題解答

回答1:

試一下:

import java.util.List;public class Test { public static void swap(List<?> list, int i, int j) {list.set(i, list.set(j, list.get(i))); }}

編譯錯誤:

.Test.java:7: 錯誤: 無法將接口 List<E>中的方法 set應用到給定類型;list.set(i, list.set(j, list.get(i)));^ 需要: int,CAP#1 找到: int,CAP#2 原因: 參數不匹配; Object無法轉換為CAP#1 其中, E是類型變量: E擴展已在接口 List中聲明的Object 其中, CAP#1,CAP#2是新類型變量: CAP#1從?的捕獲擴展Object CAP#2從?的捕獲擴展Object1 個錯誤

因為list的類型是List<?>,不知道具體的類型,所以只能從列表里取出一Object,不能往列表插入。

所以轉成List。

或者換成List<T>:

public static <T> void swap(List<T> list, int i, int j) {...}

標簽: java
主站蜘蛛池模板: 韩国一级毛片大全女教师 | 成人在线免费小视频 | 韩国免费高清一级毛片性色 | 日本特级黄毛片毛片视频 | 免费人成黄页网站在线观看国产 | 草草在线观看视频 | 2021年国产精品久久 | 日韩精品你懂的在线播放 | 九九五月天 | 日韩毛片在线影视 | 2022国产成人精彩在线视频 | 一级特黄特黄毛片欧美的 | 国产91情侣在线精品国产 | 91综合久久| 国产高清精品一区 | 黄色视屏日本 | 日本在线日本中文字幕日本在线视频播放 | 日本一区欧美 | 国产一区91| 亚洲天堂爱爱 | 美国一级大黄一片免费的网站 | 秀人网艾小青国产精品视频 | 亚洲一页| 国产成人精品日本 | 亚洲 欧美 自拍 另类 欧美 | 日韩毛片网 | 国产婷婷色 | 精品福利国产 | 天天想夜夜操 | 国产98色在线 | 日本一区二区不卡视频 | 长腿美女校花宿舍嗷嗷嗷大叫 | 日韩久久网 | 国产精品久久久久久久久久直 | 免费污污网站 | 亚洲+国产+图片 | 黄网站在线播放视频免费观看 | 欧美日韩另类在线观看视频 | 宅男69免费永久网站 | 国产在线观看第一页 | 日韩欧美中文字幕出 |