黑马程序员---单例设计模式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);
    }

}

 



  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值