日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

集合框架(泛型概述和基本使用)

發布時間:2025/7/14 编程问答 36 豆豆
生活随笔 收集整理的這篇文章主要介紹了 集合框架(泛型概述和基本使用) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

package cn.itcast_01;


import java.util.ArrayList;

import java.util.Iterator;


/*

?* ArrayList存儲字符串并遍歷

?*?

?* 我們按照正常的寫法來寫這個程序, 結果確出錯了。

?* 為什么呢?

?* 因為我們開始存儲的時候,存儲了String和Integer兩種類型的數據。

?* 而在遍歷的時候,我們把它們都當作String類型處理的,做了轉換,所以就報錯

?*

?* 但是呢,它在編譯期間卻沒有告訴我們。//其實在Myeclipse中已經告訴你了,×××警告線就告訴你了,這里隱含著類型安全問題,為什么有警告線,就是為了告訴你這里容易出問題


?* 所以,我就覺得這個設計的不好。


?* 回想一下,我們的數組

?* String[] strArray = new String[3];

?* strArray[0] = "hello";

?* strArray[1] = "world";

?* strArray[2] = 10;




?* 集合也模仿著數組的這種做法,在創建對象的時候明確元素數據類型。這樣就不會在有問題了。

?* 而這種技術被稱為:泛型。

?*?

?* 泛型:是一種把類型明確的工作推遲到創建對象或者調用方法的時候才去明確的特殊的類型。參數化類型把類型當作參數一樣的傳遞。(也就是說一開始不明確,到創建對象或者調用方法的時候才明確)

?* 比如 一開始我不明確什么類型,但是一造對象ArrayList<String> array = new ArrayList<String>();就要明確,為什么呢?因為集合說了集合可以放任何任意類型,而我知道我的集合放字符串,我就告訴你我放字符串

?* 我知道我放學生,我就告訴你ArrayList我放學生 ? 還有就是 只要在API看到這種 Iterator<E>就要明確類型


?* 格式:

?* <數據類型>

?* 此處的數據類型只能是引用類型。

?* 好處

?* A:把運行時期的問題提前到了編譯期間

?* B:避免了強制類型轉換

?* C:優化了程序設計,解決了×××警告線

?*/

public class GenericDemo {

public static void main(String[] args) {

// 創建

ArrayList<String> array = new ArrayList<String>();


// 添加元素

array.add("hello");

array.add("world");

array.add("java");

// array.add(new Integer(100)); Integer是一個引用類型,而add()方法里面接收的是object類型,引用類型是object類型的一種

//array.add(10); // JDK5以后的自動裝箱,把這個通過反編譯工具,反編譯之后,為add.(Integer.valueof(10))

// 等價于:array.add(Integer.valueOf(10));


// 遍歷

Iterator<String> it = array.iterator();

while (it.hasNext()) {

// ClassCastException

// String s = (String) it.next();//這里要把Integer類型轉化為字符類型,所以要報錯,前三個可以,最后一個要報錯

String s = it.next();

System.out.println(s);

}


// 看下面這個代碼

// String[] strArray = new String[3];

// strArray[0] = "hello";

// strArray[1] = "world";

// strArray[2] = 10;這里要報錯

}

}


轉載于:https://blog.51cto.com/wangdenghui/1769053

總結

以上是生活随笔為你收集整理的集合框架(泛型概述和基本使用)的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。