框架集合——Java面向对象基础(33)

集合

集合:集合就是用于存储各种数据类型(元素类型可以不同、集合长度可变、空间不固定。)的一个容器。

Java中提供了强大的api    java.util包提供了各种接口和类供我们使用

 

 

 

                               集合框架的接口及类的详解图

 

Collection:  一些 collection 允许有重复的元素,而另一些则不允许。一些 collection 是有序的,而另一些则是无序的。

List接口:一列数据,数据内容可以重复,以元素安插的次序来放置元素,不会重新排列。

Set接口:一列数据,数据内容不能重复,使用自己内部的一个排列机制放置元素。

Map接口:一列数据对,使用自己内部的一个排列机制放置元素。

List接口

ArrayList: 基于数组的方式实现,随机访问效率相对较高,插入、删除效率相对较低。初始容量默认是10,超过容量后就按当前容量的一半去增加。

 

掌握ArrayList方法:

add(E e)  添加元素

get(int index)  根据索引获取元素

size()  获取列表元素的个数

remove(int index)  移除指定位置的元素(注意:遍历移除元素时,容易出错。解决办法有两种:1、将指针再向前移,2、采用迭代器)

 

ArrayList泛型的定义方式

    //对象<Integer> 泛型:约束它的存储数据类型   

//注意:泛型<引用类型>,如果放置基本数据类型需要用其包装类才可。

ArrayList<Account>  arrayList01 = new ArrayList<Account>();

arrayList01.add(ac1);

arrayList01.add(ac2);

arrayList01.add(ac3);

//有风险--遍历方式获取每个元素

for(Account ac : arrayList01){

System.out.println(ac.getAccountNo());

}

 

LinkedList:基于链表的方式实现,插入、删除效率相对较高,随机访问效率相对较低。提供了针对第一个和最后一个元素操作的具体方法。

addFirst(E e)

addLast(E e)

removeFirst()

……

    其他方法和ArrayList差不多

Vector它的用法和特点和ArrayList差不多,不同的是Vector是线程安全的,效率低,使用频率少。

 

LinkedList>ArrayList>Vector

Set接口

Set接口:一列数据,数据内容不能重复,使用自己内部的一个排列机制放置元素。

常用的方法:

add()  —— 向集合中添加元素(增)

remove(Object o) – 将元素从集合中移除(删)

size() —— 查看集合长度

HashSet:元素不能重复,无序(按插入顺序)。可以为null、用迭代器方式遍历。

TreeSet:元素不能重复,无序(按插入顺序)。不能null、用迭代器方式遍历。内置的排序机制自然排序(对象不能直接排序:需要两种方式制定排序规则……Comparable、Comparator)

 

HashSet:速度快,不排序。 --使用频率较高

TreeSet:速度慢,排序。

Map接口

Map接口不是Collection接口的继承。Map接口用于维护键/值对(key/value pairs)。每个条目包括单独的两部分。

常用方法:

put() 将键值对存入集合

get() 根据键取出元素的值

keySet()           将Map中的所有键取出形成一个Set

values()           将Map中的所有值取出形成一个Collection

remove() 根据键移除值

 

 

HashMapkey采用HashSet机制

TreeMapkey采用TreeSet机制。

Hashtable:线程安全、key value都不允许为null

补充Collections集合框架中提供的工具类

Collections等价于数组中Arrays

posted @ 2020-03-28 17:47  Unlimited_Rain  阅读(125)  评论(0编辑  收藏  举报