大纲
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 }
原文:https://www.cnblogs.com/JulyTail/p/9102114.html