java集合类

来源:互联网 发布:com域名 编辑:程序博客网 时间:2024/06/08 09:34

容器

1.1    容器指什么

容器是JAVA中API提供的一系列类的实例,用于程序中存放对象。

1.2    容器中有哪些接口

有collection 和map ,其中list接口 ,set接口有属于collection接口。

List接口中常用的类有:Vector ,  ArrayList ,LinkedList

Set接口中常用类有:HashSet,  TreeSet,  LinkedHashSet

Map中常用的类有:HashMap,  Hashtable, TreeMap

1.3    collection接口中定义了存取一组对象的方法,其子接口色set和list分别定义了存储方式

set中的数据对象没有顺序且不可以重复

list中的数据对象是有序的且可以重复(即互相equals

              map接口定义存储“健(key)----值(value)映射对”

                            指通过一个对象找到另一个对象

1.4    ArrayList与Vector之间的区别

ArrayList:线程不同步(不安全),速度快

              Vector:线程同步(安全),速度慢

1.5    ArrayListLinkdeList之间的区别

ArrayList:底层是数组结构,所以查询快,修改删除,插入慢

LinkedList:底层是链表结构(双向链表),查询慢,修改删除,插入快

Vector:与ArrayList一样,区别在于线程安全效率低

1.6  Mapkey不能重复,实现Map接口的类用来存储键---值对通过键来标识

Map接口的实现类有HashMap,  Hashtable, TreeMap

1.7  HashMapMap.put(keyvalue)key可以为nullvalue也可以为null

         Hashtable中键值和value的值均不能为空,保证线程的安全

1.8         Set是无序的,不重复的(相对List)来说

HashSet底层用HashMap来实现

         HashSet里面方对象,同样需要重写hashcood方法

1.9         为什么set中元素不能重复

Add 方法执行的是map方法

         我们添加的对象是map中的key

         Value执行的同一个对象PRESENT

         因为map中的key是不允许重复的,所以set中的元素不能重复

TreeSet是有序的,HashSet是无序的

2.1 Auto-boxing/unboxing(封装和拆封)

              自动打包:自动将基础类型转换为对象

              自动解包:自动将对象转换成基础类型

2.2 HashCode

              Hashcode是一种编码方式,在java中每个对像都会有一个HashCode,java可以通过这个hashcode来识别一个对象

              Hashtable实现了一种无顺序的元素排列

1.     两个对象相等则hashcode一定相等

2.     hashcode相等对象未必相等

3.    重写equals方法,通常需要重写hashCode方法.因为你的本意是想让他相等的.但hashCode如果不重写,不同的对象就不会相等

4.     hashcode被谁调用,什么时候调用

被Map对象调用,在put一个值得时候,存在则覆盖,不存在则增加

2.3Iterator

              实现了collection接口容器都有一个iterator方法用以返回一个实现了Iterator接口的对象

              Iterator对象称作迭代器,用以方便的实现对器内元素的遍历操作

              Iterator对象的remove方法是在迭代过程中删除元素的唯一安全方法

              Boolean hasNext()  判断游标右边是否元素

              Object next()  返回游标右边的元素并将游标移动到下一个位置

              Void remove()  删除游标左边的元素,在执行玩next 之后该操作只能执行一次

2.3两个类

这两个类分别是:Collections  和 Arrays

其中,Collections提供了对一个Collection容器进行诸如排序、复制、查找和填充等方法

  Arrays 提供了数组的填充,查找,比较,排序等一系列的对数组的操作

2.4 三个知识点

Enhanced For 增强型For循环

Generic范型 à增强程序的可读性和稳定性

Auto-boxing / unboxing à(装箱与拆箱)谨慎使用

2.5 如何选择数据结构

Array读快改慢

Linked改快读慢

Hash搜索极快,遍历极慢

Tree(有序)搜索都比较快,适合做索引      

 

0 0
原创粉丝点击