- 單例是特殊java類函匕,僅存在一個(gè)實(shí)例疹味,應(yīng)用能在內(nèi)存里存多久單例就能存多久,不用管activity房交,fragment的生命周期彻舰,方便獲取
兩個(gè)要素:私有構(gòu)造方法,get()方法
CrimeLab單例
public class CrimeLab {
private static CrimeLab sCrimeLab;
public List<Crime> mCrimes;
public static CrimeLab get(Context context)
{
//僅存在一個(gè)CrimeLab實(shí)例,若無(wú)則創(chuàng)建有就直接返回
if(sCrimeLab==null) {
sCrimeLab = new CrimeLab(context);
}
return sCrimeLab;
}
public List<Crime> getCrimes(){
return mCrimes;
}
public Crime getCrime(UUID id){
for(Crime crime:mCrimes){
if(crime.getId().equals(id)){
return crime;
}
}
return null;
}
private CrimeLab(Context context){
mCrimes=new ArrayList<>();
for(int i=0;i<100;++i){
Crime crime=new Crime();
crime.setTitle("Crime#"+i);
crime.setSolved(i%2==0);
mCrimes.add(crime);
}
}
}
- List java有序數(shù)組類刃唤,可獲取隔心,新增,刪除元素
常見list實(shí)現(xiàn)是ArrayList
推薦在聲明時(shí)直接使用List接口類型尚胞,這樣創(chuàng)建或使用時(shí)可方便選取別的list實(shí)現(xiàn)比如linkedList