1. 程式人生 > >黑馬程式設計師---單例設計模式List集合

黑馬程式設計師---單例設計模式List集合

單例設計模式

餓漢式:類載入時方法區就存在該物件。

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);
    }

}