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,如需转载请自行联系原作者
相关文章
|
20小时前
|
安全 Java
java线程之List集合并发安全问题及解决方案
java线程之List集合并发安全问题及解决方案
6 1
|
1天前
|
缓存 Java 测试技术
探讨Java中遍历Map集合的最快方式
探讨Java中遍历Map集合的最快方式
6 1
|
1天前
|
Java API
探讨Java集合的组内平均值计算
探讨Java集合的组内平均值计算
6 1
|
5天前
|
存储 算法 安全
深入理解Java集合框架:基础类型与代码效率优化
Java集合框架是编程的核心工具,包括List、Set、Queue和Map接口及多种实现类,如ArrayList、LinkedList、HashSet、TreeSet等。理解它们的内部机制有助于优化代码。选择适合的集合类型、避免类型转换、使用并发集合和管理容量可以提升效率。深入学习这些概念能改善代码性能和可维护性。
|
16小时前
|
Java
黑马Java 集合(下)
黑马Java 集合(下)
5 0
|
16小时前
|
Java
黑马Java 集合(上)
黑马Java 集合(上)
3 0
|
18小时前
|
Java 机器人 程序员
深入理解Java中的类与对象:封装、继承与多态
深入理解Java中的类与对象:封装、继承与多态
|
1天前
|
Java
JAVA构建List集合为树形结构的方法和代码
JAVA构建List集合为树形结构的方法和代码
|
1天前
|
Java
java中将集合数组转换为Stream流
java中将集合数组转换为Stream流
6 0
|
1天前
|
存储 算法 Java
Java中的集合框架使用技巧
Java中的集合框架使用技巧