/** get the first instance of MyClass ,how to do it? */pulbic MyClass
{
public List getList()
{
...
}
pulbic MyClass getFirstInstance()
{
List list=new ArrayList();
______
}
}please finish the code~ Thank you~~Help me,guys~
{
public List getList()
{
...
}
pulbic MyClass getFirstInstance()
{
List list=new ArrayList();
______
}
}please finish the code~ Thank you~~Help me,guys~
OK
this.getList() 写完这个有什么含义呢?
pulbic MyClass
{
List list=null; public List getList()
{
return new ArrayList();
} pulbic MyClass getFirstInstance()
{
if (list == null) list.add(new MyClass());
return list.get(0);
}
}
除了单例可以取到第一个(也只会有一个),还有什么办法能保证取到就是第一个?
List list=new ArrayList(); 有什么用?
能说清楚点吗?
好像是把MyClass 对象都存储在了一个List结构中,要求获取到first instance of MyClass
如果是“get the first element in the list”就在空白那里填list.get(0);
如果都不是上面就请lz回忆一下,免得不晓得题目什么意思
这里显然会报空指针异常的。
if (list == null){
list = new ArrayList();
list.add(new MyClass());
}
private static Myclass instance;
private Myclass(){
}
public static Myclass getInstance(){
if(instance == null){
instance = new Myclass();
}
return instance;
}
}
单例模式获取
回 不是 singleton
其实绝对不会出问题的singleton好像是没有的,但如果不是跨JVM的就不会有问题
给你个常用的singletonpublic class Singleton { private static Singleton instance = new Singleton();
private Singleton() {}
public static Singleton getInstance() {
return instance;
}
}还有几个public class Singleton { private static Singleton instance;
private Singleton() {}
public static Singleton getInstance() {
if(instance == null) {
synchronized (Singleton.class) {
if(instance == null) {
instance = new Singleton();
}
}
}
return instance;
}
}
下面这个我也不是很懂,好像是Google的Bob Lee提出的public class Singleton {
static class SingletonHolder {
static Singleton _instance = new Singleton();
} public static Singleton getInstance() {
return SingletonHolder._instance;
}
}还有一个效率不高的,不常用吧,因为每次getInstance()都要同步!!public class Singleton { private static Singleton instance; public static synchronized Singleton getInstance() {
if (instance == null) {
instance = new Singleton();
}
return instance;
}
}
希望对你有帮助
import java.util.*;
public class MyClass {
private static List<MyClass> instances = new ArrayList<MyClass>();
public MyClass() {
instances.add(this);
}
public static List<MyClass> getList() {
return instances;
}
public static MyClass getFirstInstance() {
if (instances.size()>0)
return instances.get(0);
return null;
}
}
hope it helps.
List list=new ArrayList();
list = getList();
if(list != null && list.size>0)
return (MyClass)list.iterator().next();
else
return null;
}
pulbic MyClass getFirstInstance(){
List list=new ArrayList();
list = getList();
if(list.size()> 0)
return (MyClass)list.iterator().next();
else
return null;
}
private static List pool = null;
public static MyClass getFirstInstance(){
if(null == pool){
pool = new ArrayList();
pool.add(new MyClass());
}else if(pool.size>0){
return (MyClass)pool.get(0);
}
}
}
private static List pool = null;
public static MyClass getFirstInstance(){
if(null == pool || pool.size()<1){
pool = new ArrayList();
pool.add(new MyClass());
return pool.get(0);
}else{
return (MyClass)pool.get(0);
}
}
}
import java.util.*;
public class MyClass {
private static List<MyClass> instances = new ArrayList<MyClass>();
public MyClass() {
instances.add(this);
}
public static List<MyClass> getList() {
return instances;
}
public static MyClass getFirstInstance() {
if (instances.size()>0)
return instances.iterator().next();
return null;
}
}