转载

大数据之路week01--day02_2 集合方面的总结

(初稿 太晚了,明天再进行补充)

1、对象数组(掌握)

(1)数组既可以存储基本数据类型,也可以存储引用类型。它存储引用类型的时候的数组就叫对象数组。

(2)案例:

用数组存储5个学生对象,并遍历数组。

 1 package day02;
 2 
 3 /** 
 4 * @author WYH
 5 * @version 2019年11月12日 下午10:28:33
 6 */
 7 public class test {
 8     public static void main(String[] args) {
 9         Students[] s = new Students[2];
10         
11         Students s1 = new Students("xiao",21);
12         Students s2 = new Students("da",22);
13         
14         s[0] = s1;
15         s[1] = s2;
16         
17         for(int i = 0;i<s.length;i++) {
18             System.out.println(s[i]);
19         }
20         
21         
22     }
23 
24 }

2、集合(Collection)(掌握)

(1)集合的由来?

我们学习的时Java -- 面向对象 --操作很多对象 --存储 -- 容器(数组和StringBuffer)-- 数组而数组得长度固定,所以不适合做变化得需求,Java就提供了集合供我们使用。

(2)集合和数组得区别?

A: 长度区别

数组固定

集合可变

B: 内容区别

数组可以是基本类型,也可以是引用类型

集合只能是引用类型

C: 元素内容

数组只能存储同一种类型

集合可以存储不同类型(其实集合一般存储得也是同一种类型)

(3)集合的继承体系结构?

由于需求不同,Java就提供了不同得集合类,而这多个集合类得数据结构不同,但是他们都是要提供存储和遍历功能得容器,我们把他们得共性不断向上提取,

最终就形成了集合得继承体系结构。

Collection

|--List

|--ArrayList

|--Vector

|--LinkList

|--Set

|--HashSet

|--TreeSet

(4)Collection得功能概述( 自己补齐)

A: 添加功能

B:删除功能

C: 判断功能

D: 获取功能

E: 长度功能

F: 交集(了解)

G: 把集合转数组(了解)

(5)Collection集合得遍历

A: 把集合转数组(了解)

(代码补充)

B: 迭代器(集合专用方式)

(代码补充)

(6)迭代器

A: 是集合得获取元素得方式

B: 是依赖于集合而存在得

C:迭代器得原理和源码

a:为什么定义为了一个接口而不是一个实现类(如果是实现类,那么就要提供具体得实现方法,但是我们的集合有很多种,所以是一个接口)

b: 看了看迭代器的内部类实现

(7)Collecton集合的案例(遍历方式 迭代器)

集合的操作步骤:

A: 创建集合对象

B: 创建元素对象

C: 把元素添加带集合

D: 遍历集合

A: 存储字符串并遍历

(代码补充)

B: 存储自定义对象并遍历

(代码补充)

2、集合(List)(掌握)

(1)List是Collection的子接口

特点:有序(存储顺序和取出顺序一致),可重复。

(2)List的特有功能:( 自己补齐)

A: 添加功能

B: 删除功能

C: 获取功能

D: 迭代器功能

E: 修改功能

(3)List集合的特有遍历功能

A: 由size()和get()结合。

B: 代码演示

(代码补充)(一种迭代器,一种for循环)

(4)列表迭代器的特有功能:(了解)

可以逆向遍历,但是要先正向遍历,所以毫无意义,基本不会使用。

(5)并发修改异常

A: 出现的异常

迭代器遍历集合,集合修改集合元素

B: 原因

迭代器是依赖集合二点,而集合的改变,迭代器并不知道。

C: 解决方案

a: 迭代器遍历,迭代器修改(ListIterator)

元素添加在刚刚迭代器的位置

(代码补充

b: 集合遍历,集合修改(size()和get())

元素添加在集合的末尾

(代码补充)

(6)常见数据结构

A: 栈 先进后出

B: 队列 先进先出

C: 数组 查询快,增删慢

D: 链表 查询吗,慢,增删快

(7)List的子类特点(面试题)

ArrayList

底层数据结构是数组,查询快,增删慢。

线程不安全,效率高。

Vector

底层数据结构是数组,查询快,增删慢。

线程安全,效率低。

LinkedList

底层数据结构是链表,查询慢,增删快。

线程不安全,效率高。

到底使用谁呢?看需求?

分析:

要安全吗?

要:Vector(即使要,也不适用这个,后面再说)

不要:ArrayLIst或者LinkedList

查询多:ArrayList

增删多:LinkedList

都不知道选啥的时候,选ArrayList。

原文  http://www.cnblogs.com/wyh-study/p/11846177.html
正文到此结束
Loading...