黑马程序员 Java基础学习笔记 集合类
来源:互联网 发布:翻墙后有什么福利软件 编辑:程序博客网 时间:2024/05/17 21:52
--------------------- <a href="http://edu.csdn.net"target="blank">ASP.Net+Unity开发</a>、<a href="http://edu.csdn.net"target="blank">.Net培训</a>、期待与您交流! ------------------------------------------
集合类的特点
集合只用于存储对象,集合长度是可变的,集合可以存储不同类型对象
Collection
----List
-----ArrayList
------LinkList
-----Vector
------Set
------HashSet
------TreeSet
集合框架
为什么会出现那么多的容器呢?
因为每一个容器对数据的存储方式都不同,这个存储方式称为:数据结构
1 add方法的参数类型是Object,便于接收任意类型对象 2集合中的存储都是对象的引用(地址)
迭代器 Iterator Iterator it=al.iterator( );
while(it.hasNext())
{
System.out.println(it.next());
}
迭代器是什么呢? 其实就是集合获取元素的方法
就把取出的方式定义在集合的内部,这样取出方式就可以直接访问集合元素的内容。那么取出方式就被定义成啦内部类。而每一个容器的数据
结构不同。所以取出的动作细节也不一样,但是都有共性内容判断和取出,那么可以将共性抽取。那么这些内部类都符合这一规则,该规则
是Iterator.
List 集合的共性方法
1 List 元素是有序的,元素可以重复,因为该集合体系有索引。
2 Set 元素是无序的,元素不可以重复。
List特有方法,凡是可以操作角标的方法都是该体系特有的方法
增 add(index, element); addAll(index, Collection);
删 remove(index);
改 set(index, element)
查 get(index); subList(from, to); listIterator( );
ArrayList 线程不同步,底层数据结构使用的是数组结构,特点是,查询速度很快,但是增删稍慢。
LinkList 底层适应的是链表数据结构,特点,增删速度快,查询稍慢。
Vector 底层是数据结构
LinkList 特有方法
addFirst( );addLast( ); getFirst();getLast(); 获取不删除 removeFirst();removeLast();获取且删除 如果没有元素返回 null
在JDK1.6出现啦替代方法
offerFirst();offerLast(); peekFirst();peekLast(); pollFirst(); pollLast( );
List集合判断元素是否相等,依据的是元素的equals方法。
HashSet
HashSet是如何保证元素的唯一性的呢?
是通过元素的两个方法hashCode和equals来完成。如果俩个元素的hashCode值相同,才会判断equals是否为true.如果元素的hashCode值不同,
不会调用equals.
TreeSet :可以对set集合中的元素进行排序。底层数据结构是二叉树。保证元素的唯一性的依据,compareTo方法return 0;
TreeSet排序的第一种方式:让元素自身具备比较性。元素需要实现Comparable接口,覆盖compareTo方法。这种方式也称作元素自然排序,
或者叫做默认排序。
TreeSet的第二种排序方式
当元素自身不具备比较性,或者具备的比较性不是所需要的。这时就需要让集合自身具备比较性。
在集合初始化时,就有了比较方式。定义比较器,将比较器对象作为参数传递给TreeSet集合的构造函数。
定义一个类,实现Comparator接口,覆盖compare 方法。
--------------------- <a href="http://edu.csdn.net"target="blank">ASP.Net+Unity开发</a>、<a href="http://edu.csdn.net"target="blank">.Net培训</a>、期待与您交流! ------------------------------------------
- 黑马程序员-java基础-集合学习笔记
- 黑马程序员 Java基础学习笔记 集合类
- 黑马程序员 JAVA基础学习笔记 集合等
- 黑马程序员—13—java基础:有关集合类的学习笔记和心得体会
- 黑马程序员------Java基础学习------集合框架
- 黑马程序员—java基础学习--集合类、泛型
- 黑马程序员--Java基础学习(集合工具类)第十七天
- 黑马程序员-java集合 学习笔记
- 黑马程序员java学习笔记,集合
- 黑马程序员------java学习笔记之集合
- 黑马程序员---java学习笔记之集合
- 黑马程序员-java学习笔记-集合框架
- 黑马程序员 java学习笔记 Day4:集合
- 黑马程序员---java学习笔记之集合工具类
- 黑马程序员——Java集合类学习笔记
- 黑马程序员-java学习笔记-java基础
- 黑马程序员-Java基础-集合类总结
- 黑马程序员--JAVA基础之集合类
- 多重背包题目及答案
- JDBC连接数据库
- solve Undefined symbols for architecture i386:"_OBJC_CLASS_$_SKPSMTPMessage", referenced from
- 存储器层次结构及高速缓存cache的思考
- 《Java核心技术》复习笔记 - 第四章 对象与类
- 黑马程序员 Java基础学习笔记 集合类
- 多数据源的MapReduce作业(一)--Reduce侧的联结
- Search for a Range
- Linq To List 集合查询
- android:INSTALL_FAILED_INSUFFICIENT_STORAGE解决方法
- GTK+主循环(main loop)的工作原理
- 关于“已导出,但存在编译警告”
- Struts2基于XML配置方式实现对Action方法进行校验
- 《Java核心技术》复习笔记 - 第五章 继承