黑马程序员技术交流社区
标题: 【总结】java基础笔记 之 容器 [打印本页]
作者: Kelvinhu 时间: 2014-4-11 00:56
标题: 【总结】java基础笔记 之 容器
本帖最后由 Kelvinhu 于 2014-4-11 01:03 编辑
javase基础的视频看完啦,好好总结一下~记录下,以后可以供自己翻一下~如有不妥的地方欢迎大家质疑~
首发自我的小博客嘿嘿~ http://blog.csdn.net/u014517350/article/details/23391957
概念
容器:Java API所提供的一系列的实例,用于在程序中存放对象。
容器 提供的Api包在java.util包内。
java中提供的容器结构图
其中Set中的数据对象没有顺序并且不可以重复;List中的数据对象有顺序并且可以重复。(如果这两个对象互相equls,就算是重复。);Map定义了存储键值对方法。
- import java.util.*;
- public class Test{
- public static void main(String args[]) {
- Collection room = new ArrayList();
- //父类引用指向子类对象,可以装不同类型的,如下所示。
- room.add("apple");
- room.add(new Integer(88));
- System.out.println(room.size()+"--"+room);
- }
- }
复制代码
通过上面代码可知道容器可以装不同类型的对象,但是这样效率不高,我们可以放相同类型的对象,可以用方便好用的泛型。
重写eqults方法应该重写hashCode方法,在这个类的某个对象当作索引的时候会使用hashCode方法。
LinkedList底层的数据结构是链表形式的,是散列形式的; ArrayList的底层的数据结构是数组形式的,是连续的。
遍历用到了Iterator
- import java.util.*;
- public class Test{
- public static void main(String args[]) {
- Collection room = new ArrayList();
- //父类引用指向子类对象
- room.add(new Name("apple"));
- room.add(new Name("banana"));
- System.out.println(room.size()+"--"+room);
- for(Iterator it = room.iterator();it.hasNext();) {
- Name n = (Name)it.next();
- System.out.println(n);
- }
- }
- }
- class Name {
- private String name;
- Name(String name){
- this.name = name;
- }
- }
复制代码
遍历还可以用增强的for循环~方便的遍历数组或者Collection
但是有缺陷:1、遍历数组时候不能方便访问下标值。2、与使用Iterator相比,不能删除集合中的内容
除了简单遍历并读出内容,不建议使用增强for循环来遍历。
类之间互相比较大小,进行排序,可以实现Comparable接口,重写compar to方法即可。
- import java.util.*;
- public class Test{
- public static void main(String args[]) {
- Collection room = new ArrayList();
- //父类引用指向子类对象
- room.add(new Name("apple",15));
- room.add(new Name("banana",10));
- room.add(new Name("banana",12));
- System.out.println(room.size()+"--"+room);
- for(Iterator it = room.iterator();it.hasNext();) {
- Name n = (Name)it.next();
- System.out.println(n.name+"--"+n.price);
- }
- }
- }
- class Name implements Comparable{
- String name;
- int price;
- Name(String name,int price) {
- this.name = name;
- this.price = price;
- }
- public int compareTo(Object o) {
- Name n = (Name)o;
- if(this.price > n.price) return 1;
- else if(this.price < n.price) return -1;
- else return 0;
- }
- }
复制代码
作者: linweiwen 时间: 2014-4-11 00:57
楼主看的是马士兵的视频?
黑马给的是毕向东的视频喔?
虽然知识都一样。。
作者: Kelvinhu 时间: 2014-4-11 00:59
:lol对啊 前面部分看的是马士兵老师讲的~~
后面学习之余才知道黑马的~~:lol其实都一样啦~
作者: linweiwen 时间: 2014-4-11 01:04
还在看教程呢,
其实我更习惯看马士兵的视频,
接触java就是看马士兵入门的,
但怕错过一些黑马的知识点,
现在在重新看毕向东教程温习。
作者: Kelvinhu 时间: 2014-4-11 01:09
:lol我两位老师的视频都看完了~
毕向东老师讲的更基础一点,马士兵老师的比较严谨,感觉差不多了,都是很不错的基础视频
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) |
黑马程序员IT技术论坛 X3.2 |