单例设计模式
饿汉式:类加载时方法区就存在该对象。
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);
}
}