深秋---JAVA 泛型
来源:互联网 发布:linux idea 安装jetty 编辑:程序博客网 时间:2024/04/28 08:58
泛型
泛型就是在创建对象的时候 给泛型 赋类型
特点:
1.增强了代码的安全性
2.省去的强制转换的麻烦
泛型还可以把在编译器上不会显示的错误 在编译器上显示出来
避免了编译通过却运行不通过时 寻找bug的麻烦
ArrayList<String> list = new ArrayList<>();
这样就最简单的声明一个集合 并且这个集合的类型是String类型的
正向遍历和逆向遍历
ArrayList<String> list = new ArrayList<String>();list.add("a");list.add("b");list.add("c");list.add("d");ListIterator<String> listIterator = list.listIterator(); //正向遍历 while (listIterator.hasNext()) { String next = listIterator.next(); System.out.println(next); } //逆向遍历 while (listIterator.hasPrevious()) { String previous = listIterator.previous(); System.out.println(previous);
想要逆向遍历就必须先要正向遍历
因为next
就相当于一个指针 每一次正向遍历 指针就会指向后一个数
而逆向遍历每一次就会指向前一个数
而在未遍历之前系统默认指向的是最前方的数
这时逆向遍历就会找不到元素 误以为是个空的集合
泛型的接口
通配符:
? extends E
?—>子类
E—>父类
? super E
?—>父类
E—>子类
int ...
int ...
相当于是一个数组 所以要在要另外在集合中添加int类型的参数时 需要写在int ...
的前面 写在后面会被默认为是int ...
数组中的一个元素
删除的三种方式(遍历的三种方式)
1.普通遍历
如果集合中有”b”就删除它
ArrayList<String> strings = new ArrayList<>();strings.add("a");strings.add("b");strings.add("c");strings.add("d");for(int i = 0, i < strings.size(); i++){ if(strings.get(i).equals("b")){ strings.remove(i--); } System.out.println(strings.get(i));}
2.迭代器删除
ArrayList<String> strings = new ArrayList<>();strings.add("a");strings.add("b");strings.add("c");strings.add("d");Iterator<String> iterator = strings.iterator();while(iterator.hasNext()){ if(iterator.next().equals("b")){ iterator.remove(); }}System.out.println(strings);
3.增强for循环遍历集合
(一般只用来打印 不做删除的操作)
ArrayList<String> strings = new ArrayList<String>();strings.add("a");strings.add("b");strings.add("c");strings.add("d");for(String string : strings){ System.out.println(string);}
集合的嵌套
在一个集合的<>中写上另一个集合
例:
创建一个学科 这个学科有两个班 每个班有两个学生
ArrayList<ArrayList<Student>> subjects = new ArrayList<>();ArrayList<Student> classes1 = new ArrayList<>();classes1.add(new Student("小明",18));classes1.add(new Student("小红",17));ArrayList<Student> classes2 = new ArrayList<>();classes2.add(new Student("小黑", 16));classes2.add(new Student("小光", 15));subjects.add(classes1);subjects.add(classes2);for(ArrayList<Student> classes : subjects){ for(Student student : classes){ System.out.println(student); }}
Collection中的sort(list)方法
这个方法时系统提供的排序方法
但 按什么规则排序 系统不知道
系统会提供一个接口 你去实现这个接口
在接口中 写上排序规则
阅读全文
0 0
- 深秋---JAVA 泛型
- 深秋---Java Map
- 深秋
- 深秋的黎明
- 深秋校园的小路
- 深秋的烦恼
- 吻别在深秋
- 深秋的落叶
- 深秋的肖邦
- 深秋浅梦
- 在深秋- 阿悄
- 明月半倚深秋
- 长假归来是深秋
- 北京深秋的晚上(舒婷)
- 一千年的沉睡作者深秋葉蕭蕭
- 爱在深秋,浓情满怀
- 2007深秋的记录--关于火狐、雅虎通
- 图灵十一月书讯 ——爱在深秋
- leanclude 数组查询问题
- C#中字符串的常用属性和方法
- Go语言并发编程总结
- 【Vijos1083】小白逛公园(线段树)
- 【学术篇】SDOI2010 古代猪文
- 深秋---JAVA 泛型
- 中国古代研究
- c语言指针相关概念
- ADB控制台过滤logcat信息
- web笔记三:Http协议中get和post请求
- 设计模式之单例模式
- nvm与nrm
- 解决svn中文乱码的问题
- 信息安全 复习笔记(一)