java集合框架

集合框架是用来装对象的一个容器,并且只能装对象,数组也能装对象,但是数组没有集合中的方法,并且性能没有集合的好,所以此时就需要集合框架。

集合是有接口和类构成的,常用的集合为Collection、List、Set、Map等。

1、Collection

      a、Collection是一个接口,代表一个集合,定义了一个集合最基本的操作,他有一个Iterable父接口,有子接口对其进行实                 现,比如常用的List、Set。

       b、Collection中定义了一些可以被实现的接口的方法,可以对集合进行增删查改,和遍历

2、List

        a、List是一个有序、有下表、可重复的集合

        b、List有一个父接口Collection和ArrayList、LinkedList等常用子类

注:存入List中的对象要重写hashcode和equals方法,因为List中的remove和contains方法要通过equals进行判断

       c、ArrayList和LinkedList类进行对比:

               ArrayList内部是数组实现,所以查找快,但插入、删除慢,需要一整片空间,所以需要扩容

              LinkedList内部是链表实现,所以查找慢,但插入、删除快,不需要一整片空间,所以不需要扩容

3、Set

       a、Set是一个无序,无下表,不可重复的集合

       b、List有一个父接口Collection和HashSet、LinkedHashList和TreeSet等常用子类

       c、HashSet

             HashSet的存查速率特别高,可以和数组媲美,向HashSet中存对象,对象会调用其hashcode方法来获取一个hashcode值,并根据该hashcode值来存放该对象,当取对象的时候,获取hashcode值根据相同的计算方法计算,去相应的位置取出对象即可。

注:当集合的长度小于对象的个数的时候,容易放生hash冲突

此时,如果两个对象的hashcode值相同,此时调用对象的equals方法比较两个对象是否相同,如果相同的不存,如果不同,该对象会以链表的形式存入到相同hashcode值得下方

         d、TreeSet

                  TreeSet内部使用二叉树进行实现,实现了可排序的set集合,存入到TreeSet中的对象要么具有可比较性,此时存入TreeSet中的集合需要调用对象的CompareTo方法,所以存入TreeSet中的对象需要实现Comparable接口,重写CompareTo方法。要么提供比较器Comparator。

*Comparator与Comparable区别

Comparator是构造器,Comparable叫可比较接口,放入TreeSet中的元素应该实现该接口,元素具有自然的比较顺序,当不满足该自然比较顺序同时又不能更改时,可以对TreeSet传入比较器,指定特定的比较顺序,且Comparator比Comparable的优先级高。

*compareTocompare的区别

compareTo是Comparable中的方法,该方法中有一个参数,用于当前对象和传入对象的比较

compare是Comparator中的方法,该方法中有两个参数,用于传入的两个参数的比较

4、Map

Map描述了一种键值对的数据结构

Map是一个顶级接口,有HashMap、LinkedHashMap、TreeMap等实现类

Map中主要是对键的操作,键是唯一的,值可以重复




评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值