集合总结

1.集合框架<容器----储存对象的对象>
    1. interface Collection{接口:元素都是Object}
---子接口<List/Set>
       方法:1. boolean add(Object o);//将对象o放入集合中,成功返回true,否则返回false;
            2. boolean contains(Object o)//判断o元素是否存在集合中
            3. boolean isEmpty()://判断集合是否是空的
            4. Iterator iterator()://创建迭代器,用于迭代遍历
            5. remove(Object o)://删除o元素;
            6. void clear();//清空
            7. int size();//得到集合的大小
        1.List<List元素有顺序,可以重复>-----(可以用下标遍历)
                1. void add(Object o)//添加o元素到集合中
                2. void add(int index,Object o)//把o添加到index下标位置
                3. Object get(int index)//得到index位置上的对象
                4. void set(int index,Object o)//将index位置上的元素改变o对象
                5. int indexof(Object o)//返回元素o的下标,如果不存在,则返回-1
6. remove(int pos)//删掉pos下标的元素
            <实现类>1.ArrayList:查询快----删除快(数组实现---线程安全)
<Vector:数组实现,线程安全,重量级>
                    2.LinkedList:查询慢----删除慢(链表实现)
          
            
        2.Set<Set元素无序,对象内容不能重复>-----
            方法全部继承自Collection接口
                /*----------------------------迭代遍历---------------------*/
                    Iterator it = set.iterator();
                    while(id.hasNext()){
                        Object o  =  it.next();
                        .....//对单一对象进行操作
                    }
                /*----------------------------迭代遍历-------------------*/
            <实现类>1.HashSet:(元素不能重复}(必须覆盖hashCode方法,和equals方法;)
//比较对象是否相同,虚拟机会先比较元素的HashCod,如果其值相等,然后再调用equals方法进行比较.
                                <String 类,Sun公司已经位置写好了hashCode方法>
自定义对象放入HashSet,为了保证元素不重复,需要:
①覆盖hashCode(),保证相同对象返回相同的hashCode,(尽量)保证不同对象返回不同的 int;
②覆盖equals(),保证相同对象,返回true;
                    2.LinkedHashSet(元素不能重复,但是保留元素顺序,);
            <子接口>1. interface SortedSet;//其中的元素不可重复,且经过排序
--<所以其中的对象必须实现Comparable接口,并实现其中的comparableTo方法>
                <实现类> TreeSet //因其中的元素经过排序,所以其中对象需要实现Comparable接口

    2. interface Map {}---储存键值对<key-value>
键不可以重复,值可以重复
            1.Object get(Object key)//获得键key对应的值
            2.put(Object key,Object value)//将键值对加入Map中,如果元素已经存在,则覆盖原有值
            3.remove(Object key)//删除key对应的键值对
            4.Set keySet();//返回Map中的所有键的Set集合
            5.Collection values();//返回所有元素值的Collection集合
            6.containsKey(Object key)/containsValue(Object value);//是否包含key/value
            7.size();//返回集合中元素的个数
            8.isEmpty();//判断是否为空
            9.clear();//清空集合
            10.entrySet():// 返回键值对的Set集合,其中存放的是Map.Entry,用来遍历键值对
                /*----------------------------Map.Entry-------------------*/ 
interface Map.Entry
1.getKey();//获得键
2.getValue();//获得值
3.setValue();//修改其中的值
                /*----------------------------Map.Entry-------------------*/   
        <实现类>1.HashMap:1.2(其中的元素无顺序,的键不能重复,采用的是hashCode方法,
所以其中的键对象需要覆盖hashCode和equals方法)允许空指针 null 作为键或者值 
2.Hashtable:1.0,线程安全的重量级---/*小写t*/,不允许空指针<面试题,类名区别空指针>
                3.LinkedHashMap:其中的键对象依然不能重复,但是会保留元素的顺序
4.properties:一种map其中的键和值都是字符串类型
        <子接口>SortedMap://其中的元素对键进行了排序,
                    <实现类> TreeMap //其中的键对象需要实现Comparable接口
     3.Collections: //这是个集合类,其中包装了很多对集合常用的操作方法,
            (如果要排序,找大小,需要集合中的对象实现Comparable接口);
4.排序:
TreeSet 自动排序 根据排序规则,相同的元素会过滤掉
List    Collections.sort  
要求集合中的对象必须实现Comparable接口,实现compareTo方法
<   返回负数
>   返回正数
==  返回0
注意:compareTo方法和equals方法必须逻辑一致 (compareTo返回0,equals必须返回true)
5.增强循环接口 for--each-----编译器自动将for-each翻译为迭代遍历
6.泛型:为了类型安全.是一个模版编程.实现类型安全的集合;
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
经导师精心指导并认可、获 98 分的毕业设计项目!【项目资源】:微信小程序。【项目说明】:聚焦计算机相关专业毕设及实战操练,可作课程设计与期末大作业,含全部源码,能直用于毕设,经严格调试,运行有保障!【项目服务】:有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。 经导师精心指导并认可、获 98 分的毕业设计项目!【项目资源】:微信小程序。【项目说明】:聚焦计算机相关专业毕设及实战操练,可作课程设计与期末大作业,含全部源码,能直用于毕设,经严格调试,运行有保障!【项目服务】:有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。 经导师精心指导并认可、获 98 分的毕业设计项目!【项目资源】:微信小程序。【项目说明】:聚焦计算机相关专业毕设及实战操练,可作课程设计与期末大作业,含全部源码,能直用于毕设,经严格调试,运行有保障!【项目服务】:有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。 经导师精心指导并认可、获 98 分的毕业设计项目!【项目资源】:微信小程序。【项目说明】:聚焦计算机相关专业毕设及实战操练,可作课程设计与期末大作业,含全部源码,能直用于毕设,经严格调试,运行有保障!【项目服务】:有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值