黑马程序员技术交流社区

标题: Java基础第15天笔记 [打印本页]

作者: Nrnnr110    时间: 2016-6-23 00:06
标题: Java基础第15天笔记
01_集合框架(对象数组的概述和使用).
        基本类型数据,以前是int[] arr {};
        对象数组,                   Student [] arr = {new Student(),new Student()};
        对象数组中每一个元素存储的都是地址值
        arr[1] 结果应该是第二个元素的地址值(不重写toString之前.)
-------------------------------------------------------------------------------------------------------------------------------
02_集合框架(集合的由来及集合继承体系图).
        集合和数组的区别
                集合:
                        1 集合长度可变
                        2 只能存储引用数据类型
                        3 同一集合中可以存储多种数据类型(存多个数据类型没意义)

                数组:
                        1 长度不可变
                        2 即可存储基本类型也可以存储引用数据类型
                        3 同一个数组中只能存储一种数据类型

                        集合的体系
                                        Collection 接口 特点继承自上面的集合:
                                                List 接口 特点 存取有序,有索引,可重复
                                                        ArrayList
                                                        LinkedList
                                                        Vector
                                                Set 接口 存取无序,无索引,唯一
                                  HashSet
                                                  TreeSet
-------------------------------------------------------------------------------------------------------------------------------
03_集合框架(Collection集合的基本功能测试).

A:添加元素
boolean add( Object obj )  
想集合中添加元素

B:删除元素。
void clear()  
清空集合中所有的元素

boolean remove( Object obj)
删除指定元素

C:判断功能。
boolean isEmprty()
判断集合是否为空.

boolean contains( Object o )
判断集合中是否包含指定元素

D:长度功能。
int size()
获取集合的长度.


数组:.length属性
字符串:length()方法
集合:size()方法

-------------------------------------------------------------------------------------------------------------------------------
04_集合框架(集合的遍历之集合转数组遍历).
-------------------------------------------------------------------------------------------------------------------------------
05_集合框架(Collection集合的带All功能测试).

boolean addAll( Collection c )  (了解即可非重点)
向集合中添加一个集合的元素

boolean removeAll( Collection c )(了解即可非重点)
从集合中删除一个指定的集合元素

boolean containsAll( Collection c ) (了解即可非重点)
判断集合中是否存在指定的一个集合中的元素

boolean retainAll( Collection c ) (了解即可非重点)
取交集
-------------------------------------------------------------------------------------------------------------------------------
06_集合框架(集合的遍历之迭代器遍历).

想要遍历用到了以下三个方法
Collection接口中的iterator()方法
通过集合对象获取迭代器对象

Iterator类中的 boolean hasNext()
        判断集合中是否还有元素,(一般咱么把它放在while的判断条件)

Iterator类中的 next()
获取下一个元素

java.util.NoSuchElementException
报这个错就是  集合中没有元素你还要去获取就出问题了.
-------------------------------------------------------------------------------------------------------------------------------
07_集合框架(迭代器的原理及源码解析).
-------------------------------------------------------------------------------------------------------------------------------
08_集合框架(List集合的特有功能概述和测试).


List 接口特有功能
A:添加功能
void add( int index, Object obj )
向指定索引处添加数据

B:删除功能
Object remove( int index )
删除指定索引处的元素(返回被删除的元素)

C:修改功能
Object set( int index, Object obj )
用指定元素替换集合中指定索引处的元素(返回的是被替换的元素)

D:获取功能
Object get( int index )
获取集合中指定索引处的元素

-------------------------------------------------------------------------------------------------------------------------------
09_集合框架(List集合存储学生对象并遍历).
get()方法和size()方法结合的方式遍历集合,只有List体系下的集合才能使用
Set 集合下是不能使用这种方式遍历的,因为Set集合中没有get方法

-------------------------------------------------------------------------------------------------------------------------------
10_集合框架(并发修改异常产生的原因及解决方案).

1、并发修改异常怎么产生的 ConcurrentModificationException
        就是在使用迭代器遍历集合的过程中对集合进行了增加或删除.

怎样解决并发修改异常?
1 遍历的时候使用get方法和size方法结合的方式       
2 使用List特有的迭代器 ListIterator 并且使用 ListIterator 中的add方法.

-------------------------------------------------------------------------------------------------------------------------------
11_集合框架(ListIterator).
-------------------------------------------------------------------------------------------------------------------------------
12_集合框架(Vector的特有功能).
-------------------------------------------------------------------------------------------------------------------------------
13_集合框架(数据结构之数组和链表).
数组结构:查询快,增删慢
链表结构:查询慢,增删快
-------------------------------------------------------------------------------------------------------------------------------
14_集合框架(List的三个子类的特点).

ArrayList
        底层是数组结构,查询快,增删慢
        线程不安全,效率高

Vector
        底层是数组结构,查询快,增删慢
        线程安全,效率低

LinkedList
        底层是链表结构,查询慢,增删快
        线程不安全,效率高.

查询多:ArrayList
修改多:LinkedList




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2