zoukankan      html  css  js  c++  java
  • 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 }
    同样的梦想,不一样的起点,大家共同进步, 微信公众号「孝客之乡」作者。
  • 相关阅读:
    防删没什么意思啊,直接写废你~
    绝大多数情况下,没有解决不了的问题,只有因为平时缺少练习而惧怕问题的复杂度,畏惧的心理让我们选择避让,采取并不那么好的方案去解决问题
    Java 模拟面试题
    Crossthread operation not valid: Control 'progressBar1' accessed from a thread other than the thread it was created on
    一步步从数据库备份恢复SharePoint Portal Server 2003
    【转】理解 JavaScript 闭包
    Just For Fun
    The database schema is too old to perform this operation in this SharePoint cluster. Please upgrade the database and...
    Hello World!
    使用filter筛选刚体碰撞
  • 原文地址:https://www.cnblogs.com/JulyTail/p/9102114.html
Copyright © 2011-2022 走看看