黑馬程式設計師---單例設計模式List集合
阿新 • • 發佈:2018-12-30
單例設計模式
餓漢式:類載入時方法區就存在該物件。
class Single{
private static Single s=new Single();
private Single(){}//私有化構造方法
public static Single getSingle(){
return s;
}
public void out(){
System.out.println(“你好啊”);
}
}
懶漢式:類載入時方法區是不存在該物件的
class Single{ private static Single s=null; private Single(){} public static Single getSingle(){ //呼叫該方法是才建立該物件 if(s=null){ s=new Single(); } return s; } public void out(){ System.out.println(“你好啊”); } } class Test(){ public static void main(String[] args){ Single sl=Single.getSingle(); //getSingle 方法返回的是一個物件,sl接收 Sl.out(); } }
List 集合
</pre><pre name="code" class="java">package JiheDemo; /* Collection |--List:元素是有序的,遠遠可以重複,因為該集合體繫有索引 |--Set:元素是無序的,袁旭不可以重複。 List: 特有方法,凡是可以操作角標的方法都是該體系有的方法。 增 add(index,element); addAll(index,Collection); 刪 remove(index); 改 set(index,element); 查 get(index); subList(from,to); listIterator(); List 集合中特有的迭代器,ListIterator 是 Iterator 的子介面。 迭代時,不可以通過集合物件的方法操作集合中的元素。 會發生ConcurrentModificationException 併發異常。 迭代時,只能用迭代器的方法操作元素,但Iterator 方法有限,如想要其他操作,修改等..,需要使用子介面,ListIterator 該介面只能通過List集合的listIterator 方法獲取。 */ public class ListDemo { public static void sop(Object obj){ System.out.println(obj); } public static void test(){ ArrayList al=new ArrayList(); al.add("zhangsan1"); al.add("zhangsan2"); al.add("zhangsan3"); al.add("zhangsan4"); sop("原集合:"+al); //獲取所有元素 迴圈遍歷 for(int i=0;i<al.size();i++){ System.out.println("for 迴圈獲取的所有 al("+i+")--"+al.get(i)); } Iterator it=al.iterator(); while(it.hasNext()){ System.out.println("Iterator 獲取的所有元素"+it.next()); } //在指定位置新增元素 al.add(1,"李四"); sop(al); //刪除指定位置元素 al.remove(0); sop(al); //修改元素 al.set(0, "王五"); sop(al); //通過角標獲取元素 sop(al.get(0)); //通過內容獲取存放的角標位 sop("indexof輸出="+al.indexOf("zhangsan2")); //獲取兩個對應角標的元素,不包含1,不包含3 List ls=al.subList(1, 3); sop("ls="+ls); } public static void main(String[] args) { test(); } } public class ArreaListDemo { public static void main(String[] args) { //ArrayList 集合的練習 ArrayList al=new ArrayList(); //新增元素 /* //輸出集合中所有內容 sop("原集合"+al); //刪除元素 al.remove("zhangsan"); sop("刪除後的集合"+al); //判斷某一個數據是否存在 sop("判斷是否存在該元素"+al.contains("lisi")); sop("集合是否為空"+al.isEmpty()); //清楚所有元素 al.clear(); sop("清楚所有元素"+al); */ /*取交集,刪除交集 ArrayList al1=new ArrayList(); //新增元素 al1.add("zhangsan"); al1.add("lisi"); al1.add("wangwu"); al1.add("dongge"); ArrayList al2=new ArrayList(); //新增元素 al2.add("改變該值實驗retainAll 和 removeAll 的區別"); al2.add("lisi"); al2.add("wangwu"); al2.add("dongge"); al1.retainAll(al2); //取交集,理解,取出兩個集合中相同的資料 //al1.removeAll(al2); //刪除交集,理解,刪除兩個集合中相同的資料 sop("al1"+al1); sop("al2"+al2); */ //ArrayList al=new ArrayList(); //新增元素 al.add("zhangsan"); al.add("lisi"); al.add("wangwu"); al.add("dongge"); sop("原集合:"+al); //該介面可以在遍歷中對元素進行操作 ListIterator it=al.listIterator();//只有List能使用,該迭代器繼承於Iterator,該方法可以進行增刪改查 //Iterator it = al.iterator(); //獲取迭代器,用於獲取集合中的元素,該方法有侷限性,不能進行新增 //取出單個元素 //sop(it.next()); //sop(it.next()); //sop(it.next()); //sop(it.next()); while(it.hasNext()){ Object o=it.next(); if(o.equals("zhangsan")){ //ListIterator 常用方法↓ it.add("這是新增的"); //刪除remove();修改set(arg0);新增add("111"); } } sop(al); while(it.hasPrevious()){ //hasPrevious()方法逆向取值 sop(it.previous()); } } public static void sop(Object obj){ System.out.println(obj); } }