Java集合类和数组概述
一、数组
定义:数组是java语言内置的数据类型,线性的序列,长度固定,容量不变,生命周期不能改变,会有边界检查
a)动态初始化,指定长度, 格式:数据类型[] 数组名称 = new 数据类型[长度];
int[] arr = new int[10];
数组元素的默认值规则为:整数默认为0,浮点数默认为0.0,字符默认为’\u0000’,布尔值默认为false,字符串等引用类型默认为null。
b)静态初始化
int[] a = { 1, 2, 3};// 静态初始化基本类型数组;
Man[] mans = { newMan(1, 1), newMan(2, 2) };// 静态初始化引用类型数组;
如果是引用类型(包含字符串),默认为null(空常量)。
遍历:(1)for循环
(2)增强for循环(for-each循环)增强for循环在遍历数组过程中不能修改数组中某元素的值。for-each仅适用于遍历,不涉及有关索引(下标)的操作。
数组索引越界异常
如果访问的数组元素索引并不存在,那么将会发生异常:
java.lang.ArrayIndexOutOfBoundsException。
注意,数组元素索引编号从0开始,一直到“数组长度-1”为止
二、集合
java.util.Collection [I]
+--java.util.List [I]
+--java.util.ArrayList [C]
+--java.util.LinkedList [C]
+--java.util.Vector [C] //线程安全
+--java.util.Stack [C] //线程安全
+--java.util.Set [I]
+--java.util.HashSet [C]
+--java.util.SortedSet [I]
+--java.util.TreeSet [C]
+--Java.util.Queue[I]
+--java.util.Deque[I]
+--java.util.PriorityQueue[C]
java.util.Map [I]
+--java.util.SortedMap [I]
+--java.util.TreeMap [C]
+--java.util.Hashtable [C] //线程安全
+--java.util.HashMap [C]
+--java.util.LinkedHashMap [C]
+--java.util.WeakHashMap [C]
[I]:接口
[C]:类
本图来源于网络。