什么是集合呢?
集合是一種容器,用來裝數據的,類似數組。
有數組,為什么還要學習集合呢?
數組定義完成并啟動后,長度就固定了。
而集合是大小可變,開發中用的最多的。
集合的特點:大小可變,類型可以不固定,功能更加強大,適合做元素個數不能確定,同時存在增刪改查的操作場景。
集合的種類非常多:
ArrayList該如何學呢?
1、會提供創建容器對象的方式;
2、會提供相應的方法對容器進行操作;
就是增刪改查:
添加數據
刪除某個數據
修改某個數據
獲取某個數據
那么,1、創建對象; 2、增刪改查的方法; 3、容器的其他特點
編程的時候使用第一個無參數構造器。
泛型:集合都是支持泛型的,約束集合在編譯階段只能操作某種數據類型。
注意:集合和泛型都不支持基本數據類型,只能支持引用數據類型。
注意:以后定義集合都應該支持泛型。
我的集合就是要什么都存:推薦這么寫:
ArrayList<Object> list = new ArrayList();
ArrayList<E>
是用的最多的、最常見的一種集合。
代碼:
package cn.ensource.arraylist;import java.util.ArrayList;/*** 目標:要求同學們掌握如何創建ArrayList集合的對象,并熟悉ArrayList提供的常用方法*/public class ArrayListDemo1 {public static void main(String[] args) {// 1. 創建ArrayList集合對象ArrayList list = new ArrayList();list.add("黑馬");list.add(1);list.add(99.5);list.add("黑馬");list.add("Java");System.out.println(list);}
}
運行結果:
打印容器的地址,而是直接去打印容器里的內容。
讓集合約束存儲的類型,只能存儲某種類型的數據,這就是泛型:
package cn.ensource.arraylist;import java.util.ArrayList;/*** 目標:要求同學們掌握如何創建ArrayList集合的對象,并熟悉ArrayList提供的常用方法*/public class ArrayListDemo1 {public static void main(String[] args) {// 1. 創建ArrayList集合對象
// ArrayList<String> list = new ArrayList<String>();// 從jdk1.7開始支持的寫法:ArrayList<String> list = new ArrayList<>();list.add("黑馬");
// list.add(1);
// list.add(99.5);list.add("黑馬");list.add("Java");System.out.println(list);}
}
ArrayList的常用方法示例:
package cn.ensource.arraylist;import java.util.ArrayList;/*** 目標:要求同學們掌握如何創建ArrayList集合的對象,并熟悉ArrayList提供的常用方法*/public class ArrayListDemo1 {public static void main(String[] args) {// 1. 創建ArrayList集合對象
// ArrayList<String> list = new ArrayList<String>();// 從jdk1.7開始支持的寫法:ArrayList<String> list = new ArrayList<>();list.add("黑馬");
// list.add(1);
// list.add(99.5);list.add("黑馬");list.add("Java");System.out.println(list);// 2. 往集合中的某個索引位置處添加一個數據list.add(1, "MySQL");System.out.println(list);// 3. 獲取某個索引位置的元素值String rs = list.get(1);System.out.println(rs);// 4. 返回集合的元素個數System.out.println(list.size());// 5. 刪除指定索引處的元素,返回被刪除的元素String rs2 = list.remove(1);System.out.println(rs2);System.out.println(list);// 6. 刪除指定的元素,返回刪除是否成功Boolean rs3 = list.remove("Java");System.out.println(rs3);System.out.println(list);// 添加一個數據list.add(1, "HTML");System.out.println(list);// 7. 如果刪除黑馬,則刪除第一次出現的黑馬被刪除System.out.println(list.remove("黑馬")); // true 刪除成功System.out.println(list); // 第二個黑馬沒有被刪除// 8. set方法,把某個索引的值進行替換list.set(0, "CentOS"); // 將HTML替換成CentOSString rs5 = list.set(1, "黑馬程序員");System.out.println(rs5); // 打印被修改的元素System.out.println(list);}
}
再次說明:
==:
比較基本數據類型:比較具體的值。
比較引用數據類型:比較的是對象地址值。
equals:比較對象內容
equalsIgnoreCase: 比較內容忽略大小寫
另外:
注意:集合容器中存儲的是每個對象的什么東西?在堆內存中的地址。