对象类中的静态列表

anj*_*dey 6 java

这是一个很好的java实践(就时间而言在内存和计算效率方面)来关联类本身中的静态对象列表.

package collection;

/**
 * Created by ANJANEY on 5/28/2014.
 */

import java.util.*;

    class Student1
    {

    int rollId;
    String name;

    static List<Student1> studentList=new ArrayList<Student1>();

    Student1(int rollId,String name)
    {
        this.rollId=rollId;
        this.name=name;
        studentList.add(this);
    }


    }

    public class A {

    public static void main(String aaaa[])
    {
        new Student1(1,"Anjaney");
        new Student1(2,"Prerak");

        Iterator<Student1> itr=Student1.studentList.iterator();

        while(itr.hasNext())
        {
            Student1 st=itr.next();
            System.out.println("Roll = "+st.rollId+" Name = "+st.name);
        }
    }

    }
Run Code Online (Sandbox Code Playgroud)

alf*_*sin 3

您在这里实现的称为“实例控制”类(请参阅Effective Java - Joshua Bloch Chapter 2 - Item I)。

通常开发人员使用静态工厂实现实例控制的类,您可以保留对创建的对象的引用(就像您使用该列表所做的那样)以及执行其他操作,例如限制实例的数量。“实例控制”类的一个著名的私有案例称为 Singleton(尽管在这种情况下,保留列表是没有意义的......)。

从性能的角度来看,我认为将列表保留在类内或类外之间没有任何有意义的增益/损失。