Java 随心笔记9

大纲
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 }

猜你喜欢

转载自www.cnblogs.com/JulyTail/p/9102114.html
今日推荐