1. 程式人生 > >集合框架以及Map(一)

集合框架以及Map(一)

集合又稱容器,程式設計思想中對其的定義為持有物件

我們在使用集合或者陣列時得到最多的異常就是陣列下表越界異常 Java.lang.ArrayIndexOutOfBoundsException這篇文章我們不討論異常

java的容器分為2部分 嚴格來說 Map介面下的子類並不屬於集合框架 屬於一個獨立的體系

圖片來源於https://blog.csdn.net/biexiaofei/article/details/77031003

看完這兩張圖片是不是感覺很複雜,沒關係 知識是一點點積累的,今天我們從Collection介面說起

在此之前普及一個小知識 關於集合為什麼不能存放基本型別資料

原文來自:https://blog.csdn.net/likun1239656678/article/details/84294606 

1.泛型的定義:在程式中我們將一個物件放入集合中,但是集合不會記住物件的型別,當我們在次使用物件的時候,物件變為Object型別,而程式中還是原來的型別,我們必須要自己轉換其型別,為了解決這個問題,則提出泛型。

2.泛型要求包容的是物件型別,而基本資料型別在Java中不屬於物件。但是基本資料型別有其封裝類,且為物件型別。

3.想放int型別,要放Integer型別不能直接放int(基本資料型別)。

Collection介面

定義:一種存放物件的方式

package com;

import java.util.*;

public class Demo {
/**
*
* @param args
*/
public static void main(String[] args) {
Collection<Integer> collection
=new HashSet<Integer>();
collection.add(1);
collection.add(1); //輸出結果為[1]
//直接使用Collection介面時需要注意一點 Set子介面 因為Set集合不允許存在重複元素 雖然不會報錯但是會只顯示一個元素
System.out.println(collection.toString());
//java.util 包下有一個Arrays的可以與容器進行互操作例如這樣Arrays.asList(1,2,3,4,5)
Collection <Integer> collection1=
new ArrayList<Integer>(Arrays.asList(1,2,3,4,5));
System.out.println(collection1.toString());
//[1, 2, 3, 4, 5] 有字面意思就可以看出是吧一個數組當做集合來使用初始化集合collection1
//更簡便的方法addAll()
collection.addAll(collection1);
System.out.println(collection.toString());
//[1, 2, 3, 4, 5] 因為向上造型set實現類的作用 所以把多餘的1去掉
}
}

好了 基本的存放元素說完了 我們存放一個物件試試

  Collection<Apple>  collection
                =new HashSet<Apple>();
        Apple apple
                =new Apple();
        collection.add(apple);
        System.out.println(collection.toString());
        //[[email protected]] 輸出結果是一個字串 這裡為什麼沒有輸出Apple的屬性是因為Apple類沒有複寫toString()方法
        System.out.println(collection.toString());
        //[Apple{size=0, color='null'}] 輸出預設值

 

今天先寫到這明天繼續