• 使用内部类开发一个存放数据的容器


    案例介绍:开发一个容器用来存放键值对,键存放英文名字,值存放中文名字,对键值对使用内部类来进行封装;

    案例设计:

    ①   使用静态内部类封装键值对数据;

    ②   容器默认大小为5,超过就扩容其2倍;

    ③   通过调用entryArrays方法返回容器中的数据;

     1 import java.util.Arrays;
     2 public class EntryDemo{
     3     public static void main(String []args){
     4         MyContainer container=new MyContainer();
     5         container.put("jack","杰克");
     6         container.put("jay","周杰伦");
     7         container.put("john","约翰");
     8         container.put("rose","罗斯");
     9         container.put("jack","张三");
    10         
    11         MyContainer.Entry[] entrys=container.entryArrays();
    12         for(int i=0;i<entrys.length;i++){
    13             MyContainer.Entry entry=entrys[i];
    14             System.out.println(entry.getKey()+"--"+entry.getValue());
    15         }
    16     }
    17 }
    18 
    19 class MyContainer{
    20     //存放entry对象的数组,默认大小为5
    21     private Entry[] entrys=new Entry[5];
    22     private int count=0;
    23     
    24     //对外提供一个接口向容器中存放封装好的数据
    25     public void put(String key,String value){
    26         Entry entry=new Entry();
    27         entry.setKey(key);
    28         entry.setValue(value);
    29         entrys[count++]=entry;//存放entry对象到数组中
    30         //数组的扩容
    31         if(count>=entrys.length){
    32             //扩容后的新数组大小
    33             int newCapacity=entrys.length*2;
    34             //把老数组中的数据复制到长度为newCapacity的新数组中
    35             entrys=Arrays.copyOf(entrys,newCapacity);
    36         }
    37     }
    38     
    39     //把容器中的有数据的内容返回
    40     public Entry[] entryArrays(){
    41         return Arrays.copyOfRange(entrys,0,count);
    42     }
    43     
    44     //把键值对封装在Entry对象中
    45     public static class Entry{
    46         private String key;
    47         private String value;
    48         public void setKey(String key){
    49             this.key=key;
    50         }
    51         public String getKey(){
    52             return key;
    53         }
    54         public void setValue(String value){
    55             this.value=value;
    56         }
    57         public String getValue(){
    58             return value;
    59         }
    60     }
    61 }
  • 相关阅读:
    BUAA OO 2019 第三单元作业总结
    OpenJML入门
    BUAA OO 2019 第二单元作业总结
    BUAA OO 2019 第一单元作业总结
    Spring MVC原理
    Spring AOP原理
    Spring DI原理
    Spring IOC原理分析
    观察者模式
    装饰模式
  • 原文地址:https://www.cnblogs.com/wzy330782/p/5308582.html
Copyright © 2020-2023  润新知