黑马程序员---单例设计模式List集合

来源:互联网 发布:印刷调色软件 编辑:程序博客网 时间:2024/05/18 07:39

单例设计模式

饿汉式:类加载时方法区就存在该对象。

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,不包含3List 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 0