集合总结-01-----黑马程序员
2013-09-02 17:35
211 查看
ASP.Net+Android+IOS开发------期待与您交流
<集合框架>
<集合框架--集合的体系及其概述>
在描述之前我们先来看看集合框架:
集合概述:
生活中,会有很多容器,酒瓶子,饮料,茶具
酒瓶子: 白酒,啤酒,红酒,黄酒
饮料: 脉动,拿铁,咖啡
茶具: 茶叶,水
容器的共同点:存储
容器的不同点:存储方式不一样,取出方式也不一样
java中的容器,集合就是一种容器,数组
集合的存储特点,取出特点,java将集合分成了两大派系
集合框架:存储,和获取
集合和数组的区别
|-- 数组可以存储基本数据类型,可以存储对象
|-- 集合,只存储对象,不存储基本数据类型
|-- 数组的长度是固定的
|-- 集合的长度是可变的
|-- 数组中提供了微乎其微的方法
|-- 集合提供了大量的方法,来操作集合
1. Collection 集合的顶层接口
|-- add(对象) 向集合中存储对象,add()方法的参数设计是Object
|-- int size() 返回集合中元素的个数
|-- clear() 清空集合中的元素
|-- boolean contains(Object) 比较对象是否在集合中,在就返回真
|-- boolean remove(Object) 删除集合中的元素,删除成功返回真
|-- addAll(Collection ) 添加一批元素,将一个集合中的元素,添加到另一集合
|-- boolean containsAll(Collection )判断一个集合是否在另一个集合中,全部的元素
|-- boolean removeAll(Collection )删除两个集合相同的元素
|-- boolean retainAll(Collection )获取交集,存储两个集合中相同的元素,元集合不变时返回false
2. 取出结合中的元素,取出方式有一个通用的方法,就是迭代器
迭代器是取出集合中元素的方法 必须要会****************
Iterator iterator()
|-- boolean hasNext() 判断集合中是否有下一元素
|-- Object next() 返回集合中的下一个元素
|-- remove() 移除集合中的元素
使用Iterator取出元素:
3. 集合中,存储自定义对象
|-- 强制类型转换,存储的时候,已经将对象提示为了Object类型
|-- next()方法,只能出现一次
4. List集合
|-- 这是一个有序集合(存储的顺序和取出的顺序是一致的)
|-- 这个集合中的存储的元素,可以重复
|-- 这个集合中的存储的元素,都有索引
|-- List集合中的特有方法
|-- Object get(int index)可以根据元素的索引,获取集合中的元素,支持for循环,就像是遍历数组一样
|-- add(int index ,Object o)指定的位置上插入元素
|-- addAll(int index, Collection c)
|-- remover(int index) 按照索引,删除集合中的元素,返回被删除掉的元素
|-- subList(start end) 获取集合中的一部分,包含头不包含尾,返回新集合
5. ListIterator -- List特有迭代器,Set Map不具备
|-- 通过List集合返回这个特有迭代器,listIterator
|-- 迭代集合的过程中,使用这个特有迭代器,可以对集合进行增,删,改的操作,不会出现异常
|-- add() 添加元素
|-- remove()移除元素
|-- set()修改元素
|-- 反向迭代集合hasPrevious()==hasNext() previous() == next() ,现正向,在反向
6. ArrayList--使用频率很高的一个类
|-- 这个集合,是List派系,具有Collection和List中的全部内容
|-- 这个集合,底层数据结构是数组结构,可变数据结构
|-- 每次50%递增,特点的查询快,增删慢
|-- 线程不安全,执行效率高
ArrayList的使用:
7. LinkedList-- 链表
|-- 这个集合,是List派系,具有Collection和List中的全部内容
|-- 这个集合,底层数据结构是链表结构
|-- 特点:查询慢,增删块
|-- LinkedList 线程不安全,执行效率高
|-- LinkedList中的特有方法
|-- addFirst()元素插入开头
|-- addLast() 元素插入在结尾
|-- E getFirst() 返回此列表的第一个元素。
|-- E getLast() 返回此列表的最后一个元素
|-- E removeFirst() 移除并返回此列表的第一个元素。
|-- E removeLast() 移除并返回此列表的最后一个元素。
8. Vector 线程安全执行效率低不常用
|-- 出现在集合框架之前,
|-- 从1.2开始,实现List接口
|-- 在没有集合框架之前,在java语言中,存储对象只能依靠Vector
|-- 底层结构也是数组结构,但是他的扩展率100%
|-- 线程安全,执行效率低
9. LinkedList练习 *****
|-- 实现堆栈队列
|-- 堆栈:
数据的先进后出
|-- 队列
数据的先进先出
代码的实现:
ASP.Net+Android+IOS开发------期待与您交流
详细请查看:http://edu.csdn.net
<集合框架>
<集合框架--集合的体系及其概述>
在描述之前我们先来看看集合框架:
集合概述:
生活中,会有很多容器,酒瓶子,饮料,茶具
酒瓶子: 白酒,啤酒,红酒,黄酒
饮料: 脉动,拿铁,咖啡
茶具: 茶叶,水
容器的共同点:存储
容器的不同点:存储方式不一样,取出方式也不一样
java中的容器,集合就是一种容器,数组
集合的存储特点,取出特点,java将集合分成了两大派系
集合框架:存储,和获取
集合和数组的区别
|-- 数组可以存储基本数据类型,可以存储对象
|-- 集合,只存储对象,不存储基本数据类型
|-- 数组的长度是固定的
|-- 集合的长度是可变的
|-- 数组中提供了微乎其微的方法
|-- 集合提供了大量的方法,来操作集合
1. Collection 集合的顶层接口
|-- add(对象) 向集合中存储对象,add()方法的参数设计是Object
|-- int size() 返回集合中元素的个数
|-- clear() 清空集合中的元素
|-- boolean contains(Object) 比较对象是否在集合中,在就返回真
|-- boolean remove(Object) 删除集合中的元素,删除成功返回真
|-- addAll(Collection ) 添加一批元素,将一个集合中的元素,添加到另一集合
|-- boolean containsAll(Collection )判断一个集合是否在另一个集合中,全部的元素
|-- boolean removeAll(Collection )删除两个集合相同的元素
|-- boolean retainAll(Collection )获取交集,存储两个集合中相同的元素,元集合不变时返回false
2. 取出结合中的元素,取出方式有一个通用的方法,就是迭代器
迭代器是取出集合中元素的方法 必须要会****************
Iterator iterator()
|-- boolean hasNext() 判断集合中是否有下一元素
|-- Object next() 返回集合中的下一个元素
|-- remove() 移除集合中的元素
使用Iterator取出元素:
package cn.itcast.collection; import java.util.*; public class IteratorDemo { /** * @param args */ public static void main(String[] args) { Collection col = new ArrayList(); col.add("abedfc1");//Object obj = new String("abc"); col.add("abcasdasdasd2"); col.add("abwesrytrewehtrwqec3"); /* * 使用迭代器,取出集合中元素的步骤 * 1. 通过集合自己的方法 iterator返回迭代器对象 * 2. 建立循环 while for * 条件是什么,就是迭代器的hasNext()方法 * 3. 调用迭代器的next()方法,返回集合中的下一个元素 */ // System.out.println(col); Iterator it = col.iterator(); for(;it.hasNext();){ System.out.println("for====="+it.next()); } //Iterator it = col.iterator(); while(it.hasNext()){ //String s = (String)it.next(); //System.out.println(s.length()); System.out.println("while====="+it.next()); } } }
3. 集合中,存储自定义对象
|-- 强制类型转换,存储的时候,已经将对象提示为了Object类型
|-- next()方法,只能出现一次
4. List集合
|-- 这是一个有序集合(存储的顺序和取出的顺序是一致的)
|-- 这个集合中的存储的元素,可以重复
|-- 这个集合中的存储的元素,都有索引
|-- List集合中的特有方法
|-- Object get(int index)可以根据元素的索引,获取集合中的元素,支持for循环,就像是遍历数组一样
|-- add(int index ,Object o)指定的位置上插入元素
|-- addAll(int index, Collection c)
|-- remover(int index) 按照索引,删除集合中的元素,返回被删除掉的元素
|-- subList(start end) 获取集合中的一部分,包含头不包含尾,返回新集合
5. ListIterator -- List特有迭代器,Set Map不具备
|-- 通过List集合返回这个特有迭代器,listIterator
|-- 迭代集合的过程中,使用这个特有迭代器,可以对集合进行增,删,改的操作,不会出现异常
|-- add() 添加元素
|-- remove()移除元素
|-- set()修改元素
|-- 反向迭代集合hasPrevious()==hasNext() previous() == next() ,现正向,在反向
6. ArrayList--使用频率很高的一个类
|-- 这个集合,是List派系,具有Collection和List中的全部内容
|-- 这个集合,底层数据结构是数组结构,可变数据结构
|-- 每次50%递增,特点的查询快,增删慢
|-- 线程不安全,执行效率高
ArrayList的使用:
package cn.itcast.collection; /* * 集合中的根接口Collection中的方法 * 接口不能建立对象,找子类去 */ import java.util.*; public class CollectionDemo { public static void main(String[] args) { method_2(); // } /* * Collection中的remove()方法 */ private static void method_2(){ Collection col = new ArrayList(); col.add("abc1"); col.add("abc2"); col.add("abc3"); col.add("abc4"); System.out.println("原始集合==="+col); boolean b = col.remove("abc"); System.out.println("b="+b); System.out.println("删除后的集合==="+col); } /* * Collection中的contains方法 * 判断集合是是否有这个元素,返回值是 boolean */ private static void method_1(){ Collection col = new ArrayList(); col.add("abc1"); col.add("abc2"); col.add("abc3"); col.add("abc4"); boolean b = col.contains("aBc2"); System.out.println("b="+b); b = !!col.isEmpty(); System.out.println("b="+b); } private static void method(){ //接口引用,指向自己的实现类对象,多态 Collection col = new ArrayList();//建立了一个集合容器 /*集合中只存储对象,不存储基本数据类型 boolean add(E e) add()方法在java工程师们,设计的时候,会知道后期我们存储什么对象吗 所以add(Object)方法的参数,Object */ col.add("abc1"); col.add("abc2"); col.add("abc3"); col.add("abc4"); System.out.println(col);//只是为了演示,实际开发不能用 [abc1, abc2, abc3, abc4] //打印语句中,默认调用对象的toString()方法,覆盖Object中的toString() int size = col.size(); System.out.println(size); col.clear(); System.out.println(col); /* * add() * size() * 运行的是Collection中的,还是ArrayList中的 */ } }
7. LinkedList-- 链表
|-- 这个集合,是List派系,具有Collection和List中的全部内容
|-- 这个集合,底层数据结构是链表结构
|-- 特点:查询慢,增删块
|-- LinkedList 线程不安全,执行效率高
|-- LinkedList中的特有方法
|-- addFirst()元素插入开头
|-- addLast() 元素插入在结尾
|-- E getFirst() 返回此列表的第一个元素。
|-- E getLast() 返回此列表的最后一个元素
|-- E removeFirst() 移除并返回此列表的第一个元素。
|-- E removeLast() 移除并返回此列表的最后一个元素。
8. Vector 线程安全执行效率低不常用
|-- 出现在集合框架之前,
|-- 从1.2开始,实现List接口
|-- 在没有集合框架之前,在java语言中,存储对象只能依靠Vector
|-- 底层结构也是数组结构,但是他的扩展率100%
|-- 线程安全,执行效率低
9. LinkedList练习 *****
|-- 实现堆栈队列
|-- 堆栈:
数据的先进后出
|-- 队列
数据的先进先出
代码的实现:
package cn.itcast.collection; /* * 实现数据的堆栈,队列 * 定义工具类,实现数据的出入功能 * 1. 定义LinkedList引用 * 2. 构造方法中,创建LinkedList对象 */ import java.util.*; class DuiZhanDuiLie{ private LinkedList list = null; DuiZhanDuiLie(){ list = new LinkedList(); } //定义存储对象的方法 public void add(Object obj){ list.add(obj); } //定义获取对象的方法 public Object get(boolean x){ if(x) return list.removeFirst(); else return list.removeLast(); } //定义判断集合中是否为空的方法 public boolean isEmpty(){ return !list.isEmpty(); } } public class LinkedListTest { public static void main(String[] args) { DuiZhanDuiLie dl = new DuiZhanDuiLie(); dl.add("abc1"); dl.add("abc2"); dl.add("abc3"); dl.add("abc4"); while(dl.isEmpty()){ System.out.println(dl.get(false)); } } }
ASP.Net+Android+IOS开发------期待与您交流
详细请查看:http://edu.csdn.net
相关文章推荐
- 黑马程序员-程序编译错误总结01
- 黑马程序员————Java基础日常笔记---对集合的理解与总结二
- 黑马程序员--集合总结(二)
- 黑马程序员_【总结】_集合框架知识梳理1
- 黑马程序员——集合总结2
- 黑马程序员--02.Java语言基础--01.赋值语句练习2【个人总结】
- 黑马程序员---Java基础---集合总结
- [黑马程序员]集合_List总结
- 黑马程序员--07.集合框架--并发访问异常理解:一个单线程程序的多线程运行思想【个人总结】
- (黑马程序员)数组转集合要点总结
- 黑马程序员——集合框架总结
- 黑马程序员java自学总结之--集合
- 黑马程序员--集合类总结1
- 黑马程序员 日记六:集合的学习总结
- 黑马程序员__集合NSArry,NSSet,NSDictionary的总结
- 黑马程序员 集合的使用与一些常见的问题总结
- 黑马程序员_C语言01_基础总结
- 黑马程序员---java集合总结
- 黑马程序员--Java编程之集合阶段总结
- 黑马程序员——Java总结(集合框架)