• 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 }
    同样的梦想,不一样的起点,大家共同进步, 微信公众号「孝客之乡」作者。
  • 相关阅读:
    二叉索引树
    将rst转换为markdown格式
    LeetCode电话号码的字母组合题
    根据文件名列表批量复制文件
    VMware+Alpine代替Docker部署Gogs服务
    wsl安装Ubuntu16.04无法ssh提示Permission denied (publickey)
    json二位数组根据指定键名去重
    thinkphp6 关联模型如何查询已经软删除的数据
    DB2数据库配置步骤(图解)
    基于SpringBoot2.3.1进行AOP原理源码阅读
  • 原文地址:https://www.cnblogs.com/JulyTail/p/9102114.html
Copyright © 2020-2023  润新知