1. 程式人生 > >Java 隨心筆記9

Java 隨心筆記9

先進先出 interface 代碼量 ID 類名 基本 set集合 數據存儲 stat

大綱
Collection
Set
HashSet
TreeSet
List
ArrayList
LinkedList

1、集合和數組 集合存儲包裝類的數據 數組存儲基本數據類型
List接口:List 是存取有序的;帶有索引的;可以有「重復」的元素

叠代器 iterator:對集合的遍歷

2、Foreach循環 Iterator
for(數據類型 變量名:數組或者集合){
sop(變量);
}
優點:代碼量減少
缺點:無法對索引進行操作
作用:簡化數組和Collection集合的遍歷

3、泛型

使用:<>:需要明確的數據類型加入括號中
好處:提高了程序的安全性,可以將運行時的錯誤提前到編譯期。
註意:List<String> list = new ArrayList<String>();中後面的<>可以在JDK中省略

a)泛型類:實例化對象時,明確數據類型
格式:public class 類名<泛型類型1,…>

b)泛型方法:
格式:public <泛型類型> 返回類型 方法名(泛型類型 .)

c)泛型接口:
格式:public interface 接口名<泛型類型1…>
把泛型定義在接口上

4、List集合
ArrayList LinkedList Vector

數據存儲的常用結構:
a)棧:先進後出
b)隊:先進先出
c)數組:查找元素快,增刪元素慢
d)鏈表:查找元素慢,增刪元素快

5、set Hashset
哈希值的計算方法: h = 31 * h + val[i];h-->0,1,2
保證HashSet集合元素的唯一:根據對象的hashCode和equals方法來決定的。如果我們往
集合中存放自定義的對象,那麽保證其唯一,就必須復寫hashCode和equals方法建立屬於
當前對象的比較方式。

 1 import java.util.List;
 2 import java.util.ArrayList;
 3 //將的酒店員工,廚師,服務員,經理,分別存儲到3個集合中
 4 //定義方法,可以同時遍歷3集合,遍歷三個集合的同時,可以調用工作方法
 5 
 6 public class Test_1_fanxing {
 7     public static void main(String[] args) {        
 8         ArrayList<Chushi> arr = new ArrayList<Chushi>();
 9         ArrayList<Jingli> arr1 = new
ArrayList<Jingli>(); 10 ArrayList<Fuwuyuan> arr2 = new ArrayList<Fuwuyuan>(); 11 12 Chushi cs = new Chushi(); 13 cs.setName("廚師"); 14 arr.add(cs); 15 Fuwuyuan fwy = new Fuwuyuan(); 16 fwy.setName("服務員"); 17 arr2.add(fwy); 18 Jingli jl = new Jingli(); 19 jl.setName("經理"); 20 arr1.add(jl); 21 shuchu(arr); 22 shuchu(arr1); 23 shuchu(arr2); 24 } 25 26 public static void shuchu(ArrayList<? extends Employee> list)//通配符 27 { 28 for (int i = 0; i < list.size(); i++) { 29 System.out.println(list.get(i).getName()); 30 list.get(i).work(); 31 } 32 } 33 } 34 class Employee{ 35 private String name; 36 public void work() {} 37 public String getName() { 38 return name; 39 } 40 public void setName(String name) { 41 this.name = name; 42 } 43 } 44 class Chushi extends Employee{ 45 public void work() { 46 System.out.println("職責:做飯"); 47 } 48 } 49 class Jingli extends Employee{ 50 public void work() { 51 System.out.println("職責:管理秩序"); 52 } 53 } 54 class Fuwuyuan extends Employee{ 55 public void work() { 56 System.out.println("職責:上飯"); 57 } 58 }

Java 隨心筆記9