功能架构图配色_List

 

一、集合和数组的区别

  1. 数组长度是固定的,使用前得声明长度
  2. 集合的长度是可以变的
  3. 数组存放的是同一类型的元素
  4. 集合存储的可以是不同类型的元素
  5. 数组可以存放基本类型,也可以存放对象
  6. 集合只可以存放对象

二、贴个笔记、

集合接口

整个集合框架就围绕一组标准接口而设计。你可以直接使用这些接口的标准实现,诸如: LinkedList, HashSet, 和 TreeSet等,除此之外你也可以通过这些接口实现自己的集合。具体接口及其概述如下:

名称概述CollectionCollection 是最基本的集合接口,一个 Collection 代表一组 Object,Java不提供直接继承自Collection的类,只提供继承于的子接口(如List和set)。ListList接口是一个有序的Collection,使用此接口能够精确的控制每个元素插入的位置,能够通过索引(元素在List中位置,类似于数组的小标)来访问List中的元素,而且允许有相同的元素。SetSet 具有与 Collection 完全一样的接口,只是行为上不同,Set 不保存重复的元素。SortedSet继承于Set保存有序的集合。Map将唯一的键映射到值。Map.Entry描述在一个Map中的一个元素(键/值对)。是一个Map的内部类。SortedMap继承于Map,使Key保持在升序排列。Enumeration这是一个传统的接口和定义的方法,通过它可以枚举(一次获得一个)对象集合中的元素。这个传统接口已被迭代器取代。

更多参见:在线文档-jdk-zh。

集合实现类

集合类型描述ArrayList一种可以动态增长和缩减的索引序列LinkedList一种可以在任何位置进行高效地插入和删除操作的有序序列ArrayDeque一种用循环数组实现的双端队列HashSet一种没有重复元素的无序集合TreeSet一种有序集EnumSet一种包含枚举类型值的集LinkedHashSet一种可以记住元素插入次序的集PriorityQueue一种允许高效删除最小元素的集合HashMap一种储存键/值关联的数据结构TreeMap一种键值有序排列的映射表EnumMap一种键值属于枚举类型的映射表WeakHashMap一种其值诶用武之地后可以被垃圾回收器回收的映射表LinkedHashMap一种可以记住键/值项添加次序的映射表IdentityHashMap一种用==,而不是用equals比较键值的映射表

另外还有一组名字以Abstract开头的类,例如,AbstractQueue,这些类是为类库实现者而设计的,用来实现自己的数据结构。

常用数据结构

向量(Vector)

Vector类实现了一个动态数组。和ArrayList和相似,但是Vector是同步访问的(同步操作会耗费大量时间,建议在不需要同步时使用ArrayList),而且Vector包含了许多传统的方法,这些方法不属于集合框架。Vector主要用在事先不知道数组的大小,或者只是需要一个可以改变大小的数组的情况。需要注意的是向量中的数据被转化为Object对象,取出元素使用时要强制转化为原来的类型。

Vector类支持4种构造方法:


 


常用方法:


方法

描述

boolean add(E e)

将指定元素添加到此向量的末尾。

void add(int index, E element)

在此向量的指定位置插入指定的元素。

E remove(int index)

移除此向量中指定位置的元素。

boolean remove(Object o)

移除此向量中指定元素的第一个匹配项,不包含则元素保持不变。

E set(int index, E element)

用指定的元素替换此向量中指定位置处的元素。

void setElementAt(E obj, int index)

将此向量指定 index 处的组件设置为指定的对象。

E get(int index)

返回向量中指定位置的元素。

int indexOf(Object o)

返回此向量中第一次出现的指定元素的索引,不包含则返回 -1。

boolean isEmpty()

测试此向量是否不包含组件。

void clear()

从此向量中移除所有元素。

int capacity()

返回此向量的当前容量。

boolean contains(Object o)

如果此向量包含指定的元素,则返回 true。

void setSize(int newSize)

设置此向量的大小。

void trimToSize()

对此向量的容量进行微调,使其等于向量的当前大小。


Vector还定义了很多其他方法,具体可以看:Java Vector 类。

链表(LinkedList)

LinkedList是一个双端链表,存放在结点中的数据都被看作是一个Object对象。由于任何类都是Object类的间接子类,因此,可以把任何一个对象作为链表结点中的数据。需要注意的是get()方法返回的类型是Object,要类型转换回原来的类型。
构造方法:


 


常用方法:


方法

描述

boolean add(E e)

将指定元素添加到此列表的结尾

void add(int index, E element)

在此列表中指定的位置插入指定的元素。

E remove(int index)

移除此列表中指定位置处的元素。

E remove()

获取并移除此列表的头(第一个元素)。

boolean remove(Object o)

移除首次出现的指定元素,不包含则不作更改。

E set(int index, E element)

将此列表中指定位置的元素替换为指定的元素。

E get(int index)

返回此列表中指定位置处的元素。效率低,并非随机访问。

int indexOf(Object o)

返回此列表中首次出现的指定元素的索引,不存在则返回-1.

boolean contains(Object o)

至少包含一个指定元素,则返回 true。

int size()

返回此列表的元素数。

void clear()

从此列表中移除所有元素。

Object clone()

返回此 LinkedList 的浅表副本。(这些元素本身没有复制。)

Object[] toArray()

此方法返回一个新数组,调用者可以随意修改。

稍微有点麻烦,问题不大,写几道题差不多就能掌握。

三、泛型
  list<lnteger> list=new arraylist()

这个最简单,给集合加个尖括号,限定集合里面的类型。

四、forreach循环

for( student ss:list){    }

  遍历集合用的,相当与for循环,换了一种表达方式。

五、异常处理

  

  异常的英文单词是exception,字面翻译就是“意外、例外”的意思,也就是非正常情况。事实上,异常本质上是程序上的错误,包括程序逻辑错误和系统错误。比如使用空的引用、数组下标越界、内存溢出错误等,

  现阶段,能抛就抛,不能抛就检查自己是不是哪个单词拼错了,或者常量定义错了。Throwable 类错误绝对是自己的问题,error类错误遇不到 ,不用想着进行花里胡哨的操作,浪费电脑内存。

  就这样,反省自己为啥,啥啥都学不会。

功能架构图配色_指定位置_02