集合

来源:互联网 发布:施工进度网络计划图 编辑:程序博客网 时间:2024/05/19 03:17

Collection

方法:

 Add(E) Void clear(); Boolean contains(Object obbj) //判断是否包含某个对象 需要重写equals方法 Boolean remove(Object o)  //删除集合中某个元素 需要重写equals方法 Object[] toArray()  //集合转为数组 重写toString方法

迭代器

 Iterator<E> integer() Iterator接口方法:   Boolean hasNext()  //判断集合中有没下一个元素   Object next()      //取出元素

并发修改异常

ConcurrentModificationException迭代器在迭代过程中发现元素的个数和它之前开辟的个数不一样,它就不知道该如何迭代

Iterator<String> it=list.iterator();
Whie(it.hasNext){
String name=it.naxt;
If(name.equals(“小刘”)){
List.add(“小猪”);
}
}

解决:集合自己遍历集合自己修改,(普通for循环,不用迭代器)结论: 当使用迭代器遍历时,如果集合修改内容则会发生并发修改异常

增强for循环

只能用来遍历
对普通for循环的简化

For(集合或数组中元素的类型变量:集合或数组的名字){ }     

快捷键: fore+alt+/
内部原理:在遍历时也使用的迭代器,也有可能发生并发修改异常
使用:普通for 除了遍历也可对元素内容进行修改
增强for循环 只能遍历

泛型

泛型只能是引用类型 不能是基本类型 int——Integer

修饰类(泛型类)

声明:  声明类中有类型T不确定,泛型类的类型在创建对象时被确定定义:Class Demo<T>{         T value;       Public void method(T t); }   确定: 如果创建对象时没有指定泛型的类型则泛型全是object泛型类可以理解为模板类,以后用户在创建对象T指定是什么类型就是什么类型Demo<T> d=new Demo<T>();继承:Class Zi<T> extends Demos<T>{   }如果子类没有确定父类泛型子类还是泛型类Class Zi extends Demo<String>{  }如果子类已经确定了父类的泛型,所有子类都是普通类 一个类可以有一个或多个泛型 Class Demo<T,m>{         T value;       M value;       Public void method(T t); }    继承: Class Zi<T,M> extends Deom<T,M>{   } Class Zi<T> extends Deom<T,String>{   } Class Zi<M> extends Deom<int,M>{   }

修饰方法(泛型方法)

 声明: 方法内传入的参数类型是泛型,则返回类型前加泛型<T> Public static <T>void method(T t){    }

修饰接口(泛型接口)

 接口中的参数类型不确定 Interface Inter<T>{    Public abstract void method(T t);  }确定类型:实现类确定泛型的类型Class Demo implement Inter<String>{      Public void method(String s){              ..... } }Class Demo<T> implement Inter<T>{       Public void method<T t>{                   .....        } }
原创粉丝点击