Java:如何封装集合

简介:
对于一般的成员变量,对其提供简单的 getter/setter 封装即可。而对于一个集合类,不能够这样做。
对于一个简单的成员变量,可以这样:
class  Athlete {

     private  String  name ;

 

     public  String getName() {

        return   name ;

    }

 

     public   void  setName(String name) {

        this . name  = name;

    }

     // ......

}
而如果是一个 Set/List/Map 或数组,应该:
[1] 初始化这个集合类;
[2] 提供对单个元素的 add/remove
[3] 提供加入另一个集合的方法。如果是基于此初始化,则先保证当前集合无元素;
[4] 对于 getter 方法,应该返回该集合的只读试图;
[5] 提供当前集合 size
 
public   class  Game {

     private  Set<Athlete>  players  =  new  HashSet<Athlete>(); // 1

 

     public   void  addPlayer(Athlete one) { // 2

        players .add(one);

    }

 

     public   void  removePlayer(Athlete one) { // 2

        players .remove(one);

    }

 

     public   void  addPlayers(Set<Athlete> set) { // 3

       Iterator<Athlete> iter = set.iterator();

        while  (iter.hasNext())

           addPlayer(iter.next());

    }

 

     public   void  initializaPlayers(Set<Athlete> set) { // 3

        if  (getAttendNumbers() > 0)

            players .clear();

        players .addAll(set);

    }

 

     public  Set<Athlete> getAllPlayers() { // 4

        return  Collections.unmodifiableSet( players );

    }

 

     public   int  getAttendNumbers() { // 5

        return   players .size();

    }

}
 本文转自zhangjunhd51CTO博客,原文链接:http://blog.51cto.com/zhangjunhd/71263,如需转载请自行联系原作者
相关文章
|
14天前
|
安全 Java 数据安全/隐私保护
|
14天前
|
搜索推荐 Java
Java的面向对象特性主要包括封装、继承和多态
【4月更文挑战第5天】Java的面向对象特性主要包括封装、继承和多态
13 3
|
23天前
|
Java
【Java】如果一个集合中类型是String如何使用拉姆达表达式 进行Bigdecimal类型计算?
【Java】如果一个集合中类型是String如何使用拉姆达表达式 进行Bigdecimal类型计算?
24 0
|
28天前
|
算法 Java 数据处理
Java集合框架的优缺点
Java集合框架的优缺点
|
1月前
|
网络协议 算法 Java
|
6天前
|
存储 Java 编译器
Java集合丛林:深入了解集合框架的秘密
Java集合丛林:深入了解集合框架的秘密
11 0
Java集合丛林:深入了解集合框架的秘密
|
9天前
|
Java BI
Java 获取周,月,年日期集合(统计图)
Java 获取周,月,年日期集合(统计图)
Java 获取周,月,年日期集合(统计图)
|
20天前
|
Java
Java常用封装Base对象
Java常用封装Base对象
8 0
|
20天前
|
存储 安全 Java
【Java技术专题】「Guava开发指南」手把手教你如何进行使用Guava工具箱进行开发系统实战指南(不可变集合篇)
【Java技术专题】「Guava开发指南」手把手教你如何进行使用Guava工具箱进行开发系统实战指南(不可变集合篇)
30 1
|
28天前
|
缓存 NoSQL Java
java中复杂业务情况下的集合操作(增减集合同步数据)
java中复杂业务情况下的集合操作(增减集合同步数据)
26 0