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

歡迎訪問 生活随笔!

生活随笔

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

编程问答

java学习--容器(1)

發布時間:2023/12/15 编程问答 23 豆豆
生活随笔 收集整理的這篇文章主要介紹了 java学习--容器(1) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

容器(也就是集合collection)

數組相較于集合的缺點
? 長度必須在初始化時指定,且固定不變
? 數組采用連續存儲空間,刪除和添加效率低下
? 數組無法直接保存映射關系
? 數組缺乏封裝,操作繁瑣

位于java的工具包下 (java.util)
看一下家族

特點

? Collection 接口存儲一組不唯一,無序的對象
? List 接口存儲一組不唯一,有序(索引順序)的對象
? Set 接口存儲一組唯一,無序的對象
? Map接口存儲一組鍵值對象,提供key到value的映射
Key 唯一 無序
value 不唯一 無序

它們各自的優缺點

? List
? 特點:有序 不唯一(可重復)

? ArrayList 線性表中的順序表
? 在內存中分配連續的空間,實現了長度可變的數組
? 優點:遍歷元素和隨機訪問元素的效率比較高
? 缺點:添加和刪除需大量移動元素效率低,按照內容查詢效率低,

? LinkedList 線性表中雙向鏈表
? 采用雙向鏈表存儲方式。
? 缺點:遍歷和隨機訪問元素效率低下
?優點:插入、刪除元素效率比較高(但是前提也是必須先低效率查詢才可。如果插入刪除發 生在頭尾可以減少查詢次數)

  • List的常用方法
    • List相對Collection增加了關于位置操作的方法
  • 常用的遍歷方法
    • for for-each Iterator迭代器

練習

public class TestGeneric {public static void main(String[] args) {MyClloction<String> mc = new MyClloction<String>();//這里的第二個<String>可以省略mc.set("洛塵曦",0);String b = mc.get(0);System.out.println(b);}}class MyClloction<E>{Object [] objs = new Object[10];public void set(E e,int index) {objs[index] = e;}public E get(int index) {return (E)objs[index];}}

輸出

洛塵曦

**泛型通常用ETV表示,其實這里的泛型E類似于傳參機制,他就表示返回String類型的數據,如果不用容器的話,在調用方法的時候應該進行強制類型轉換。

不使用泛型,如下面的方式

public class TestGeneric {public static void main(String[] args) {MyClloction mc = new MyClloction();//這里的第二個<String>可以省略mc.set("洛塵曦",0);String b = (String)mc.get(0);System.out.println(b);}}class MyClloction<E>{Object [] objs = new Object[10];public void set(Object e,int index) {objs[index] = obj;}public Object get(int index) {return objs[index];}}

Collection的常用方法

public static void main(String[] args) {test();}public static void test() {Collection<String> c = new ArrayList<>();c.size();//判斷容器的大小c.isEmpty();//判斷容器是否為空c.add("洛塵曦");c.add("上官易澤");System.out.println(c.contains("洛塵曦"));//容器中是否包含洛塵曦System.out.println(c);System.out.println(c.size());c.remove("洛塵曦");//會把容器中的洛塵曦移除c.clear();//移除所有}

無論是ArrayList 還是LinkedList它們的常用方法其實幾乎一樣

總結

以上是生活随笔為你收集整理的java学习--容器(1)的全部內容,希望文章能夠幫你解決所遇到的問題。

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