集合
来源:互联网 发布:施工进度网络计划图 编辑:程序博客网 时间: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>{ ..... } }
阅读全文
0 0
- 集合
- 集合
- 集合
- 集合
- 集合
- 集合
- 集合
- 集合
- 集合
- 集合
- 集合
- 集合
- 集合
- 集合
- 集合
- 集合
- 集合
- 集合
- Spring编程<七>
- 论服务器反推前端技术哪家强?
- about vehiclebusinterface'Compile BatchScript
- mysql启用系统定时任务自动调用存储过程动态拼接表
- jquery-css方法
- 集合
- 面试技能汇总
- 技术文章 | 如何将 HTML5 性能发挥到极致
- leetcode 228. Summary Ranges
- Android集成网易云信(关于聊天发送位置消息)
- web项目部署问题
- LINUX SCP
- 字符串string 、byte[]、MemoryStream、Base64String的相互转换
- Cookie/Session机制详解