04Java语法回顾_collection
2015-12-16 13:48
543 查看
Java语法Collection
读了那么多年的书让我明白一个道理。人要稳重,不要想到啥就做啥。做一行越久即使你不会,几年之后慢慢的你也会了,加上一点努力你或许你能成为别人眼中的专家。Collection由来
/* * 集合: * 由于我们使用的是面向对象语言,所以,我们要经常使用对象。而很多时候,我们可能需要使用很的对象, * 这个时候,我们就只能使用以前讲过的数组进行存储了,而数组的特点是长度固定。 * 这样的话就不适合变化的数据。所 以,java重新提供了一种容器,用于存储对象,这种容器叫集合。 * * 集合的特点: * A:长度是可以发生改变的。 * B:集合只能存储对象。 * * 集合和数组的区别? * 数组: * 数组长度固定。 * 数组可以存储基本数据类型,也可以存储引用类型。 * 数组存储的数据类型是一致的。 * 集合: * 集合长度可变。 * 集合只能存储引用类型。 * 集合可以存储不同类型的对象。 * * 我们的集合这种容器,由于数据结构不同,所以,java就对应的提供了很多种集合类,供我们使用。 * * 数据结构:就是数据的组织(存储)方式。 * * Collection中应该有什么功能 * A:添加功能 * boolean add(Object obj):向集合中添加一个元素 * boolean addAll(Collection c):向集合中添加一个集合的元素。 * B:删除功能 * void clear():删除集合中的所有元素。 * boolean remove(Object obj):从集合中删除指定的元素 * boolean removeAll(Collection c):从集合中删除一个指定的集合元素。 * C:判断功能 * boolean isEmpty():判断集合是否为空。 * boolean contains(Object obj):判断集合中是否存在指定的元素。 * boolean containsAll(Collection c):判断集合中是否存在指定的一个集合中的元素。 * D:遍历功能 * Iterator iterator():就是用来获取集合中每一个元素。 * E:长度功能 * int size():获取集合中的元素个数 * F:交集功能 * boolean retainAll(Collection c):判断两个集合中是否有相同的元素。??? * G:把集合转换成数组 * Object[] toArray():把集合变成数组。 */
Collection代码测试
public class CollectionDemo { public static void main(String[] args) { // 创建对象 // Collection c = new Collection();//接口不能被实例化 Collection c = new ArrayList();//多态的特点:编译时期看左边父类方法,运行时期使用右边的子类方法 // 添加元素 // boolean add(Object obj):一个是添加,一个是返回添加是否成功。 // System.out.println(c.add("hello")); // c.add("world"); c.add("hello"); c.add("world"); c.add("java"); // 删除功能 // void clear():删除集合中的所有元素。 // c.clear(); // boolean remove(Object obj)// 删除某个元素 // System.out.println("remove:"+c.remove("world")); // System.out.println("remove:"+c.remove("wor")); // 判断功能 // boolean isEmpty() // System.out.println("isEmpty:"+c.isEmpty()); // boolean contains(Object obj) // System.out.println("contains:" + c.contains("world")); // System.out.println("contains:" + c.contains("wor")); // 长度功能 // int size() System.out.println("size:" + c.size()); System.out.println("c:" + c); } }
Iterator(迭代器)详解
/* * Iterator iterator():就是用来获取集合中每一个元素。 * * 成员方法: * Object next():获取元素,并自动移动到下一个位置等待获取。 * boolean hasNext():判断迭代器中是否还有元素。 * * NoSuchElementException:没有这样的元素异常。你已经获取到元素末尾了,你还要获取,已经没有元素了。所以报错了。 */
Iterator(迭代器)代码测试
public class IteratorDemo { public static void main(String[] args) { // 创建对象 Collection c = new ArrayList(); // 添加元素 c.add("hello"); c.add("world"); c.add("java"); // 方式1 把集合转为数组,通过for循环遍历取出数据 // Object[] objs = c.toArray(); // for (int x = 0; x < objs.length; x++) { // String s = (String) objs[x]; // System.out.println(s); // } // 方式2 // Iterator iterator():就是用来获取集合中每一个元素。 // 通过集合对象获取迭代器对象 Iterator it = c.iterator();// 这是返回的是Iterator的子类对象,多态 while (it.hasNext()) { // System.out.println(it.next()); String s = (String) it.next(); //Object转为String类型 System.out.println(s); } } }
ArrayList集合中的迭代器java源代码解析
//ArrayList集合中的迭代器java源代码解析 //伪代码 public interface Iterator { public abstract boolean hasNext(); public abstract Object next(); } public interface Collection { public abstract Iterator iterator(); } public interface List extends Collection { ... } public class ArrayList implements List { //1 在ArrayList中有一个iterator()方法 public Iterator iterator() { return new Itr(); } //ArrayList类中有一个内部类Itr实现自Iterator接口 private class Itr implements Iterator { public boolean hasNext() { return xxx;; } public E next() { return xxx; } } } ———————————————————————————————————————— 用法: //多态 Collection c = new ArrayList(); //添加元素 c.add("hello"); c.add("world"); c.add("java); Iterator it = c.iterator(); //把Itr返回来了,而Itr实现了Iterator接口。所以,这是多态的体现。 while(it.hasNext()) { String s = it.next(); System.out.println(s); }
相关文章推荐
- java对世界各个时区(TimeZone)的通用转换处理方法(转载)
- java-注解annotation
- java-模拟tomcat服务器
- java-用HttpURLConnection发送Http请求.
- java-WEB中的监听器Lisener
- Android IPC进程间通讯机制
- Android Native 绘图方法
- Android java 与 javascript互访(相互调用)的方法例子
- 介绍一款信息管理系统的开源框架---jeecg
- 聚类算法之kmeans算法java版本
- java实现 PageRank算法
- PropertyChangeListener简单理解
- 插入排序
- 冒泡排序
- 堆排序
- 快速排序
- 二叉查找树
- [原创]java局域网聊天系统