吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 1798|回复: 6
收起左侧

[已解决] 集合

  [复制链接]
bobf 发表于 2021-7-30 13:35
什么是集合?   

             集合是一种容器,用来保存一组数目不固定的数据,集合达到一定容量可以自动扩容 (如何实现自动扩容?)             集合只能保存引用类型的数据(为何只能保存引用类型的数据?),不能保存基本类型数据(集合中保存的永远是一个个的)
              引用,决不能存放对象


如何操作集合?   

                  1.向集合中添加数据:                  2.在集合中查询数据:
                  3.从集合中删除数据:
                  4.遍历集合:
                  5.修改集合中的数据:



List集合:有序可以重复
                   添加数据:add();
                   保存数据的个数:size()
                    遍历集合:foreach(),Iterator()          (  forEach底层用的是迭代器实现的  )
         删除数据:remove()

Set集合:无序不可重复,添加的顺序和取出来的顺序不一致 .去处重复项(hashcode(),equals())     
                    
                    添加数据:add();
                   保存数据的个数:size()
                    遍历集合:foreach(),Iterator()
         删除数据:remove()
                     
在集合中使用泛型<> 规定集合中保存的类型
使用泛型时只可以声明集合变量的泛型类型,不能声明集合对象的泛型

重要规则:HashSet集合添加数据,查询数据,删除数据都要调该用对象的Hashcode和equals方法


TreeSet是按照二叉树的形式存放数据
1.存放数据的时候按照从左到右的顺序(左小右大)
2.提取数据的时候按照 左 中 右 的顺序
3.往TreeSet中添加自定义类型的数据
     第一种:要实现comparable接口,重写comparto()方法
    第二种:把比较规则从对象中提取出来,创建一个单独的比较器类(首选方式)
                     
重要规则:TreeSet集合添加数据,查询数据,删除数据都要调用该对象的比较规则

List集合

ArrayList特点:
Array特点:是一块连续的内存空间,添加删除时要频繁的移动内存空间。添加删除速度慢,查询快
linkedList特点:以链表的形式存储(小学生过马路)  链表在添加删除的时候不需要移动内存空间:增删快,查询慢
Vactor:底层以数组的形式存放数据,stack继承vactor:后进先出的栈类


如何实现一个高效的后进先出的栈,
1.用数组实现
2.直接使用java.util.Stack类   
3.用linkedList来实现     (正确的)


通过聚合代码复用原则实现代码复用是最佳的方式

Iterator 可以在遍历集合的时候删除数据
ListIterator可以在遍历集合的时候删除数据,添加数据,修改数据。可以按正反双方向遍历集合


Map集合:
一对一对的存储,一个key对应一个value。key无序不可重复,value可以重复
                                  1.向集合中添加数据:  put( key,value)
                  2.在集合中查询数据:   contains( key ) ,是否包含key---------contains( value  ) ,是否包含value
                  3.从集合中删除数据:   remove()
                  4.遍历集合:   
                取出map集合中所有value-----values()返回一个collection集合
                取出map集合中所有的key-----keySet()返回一个set集合
                通过key得到value-----getKey()
                取出所有的Entry-----entrySet()返回一个set集合
                  5.修改集合中的数据:put( key,value)                             
                   6.数据的对数:                size()
        
Hashmap和hashtable的相同点都要求作为key的类必须覆盖hashcode,equals()
hashMap是新集合,非线程安全的,速度快
hashTable是老集合,线程安全的,速度慢


免费评分

参与人数 2吾爱币 +1 热心值 +1 违规 +1 收起 理由
nz131510 + 1 + 1 我很赞同!
wushaominkk + 1 多次发灌水主题

查看全部评分

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

头像被屏蔽
wusongrong 发表于 2021-7-30 13:46
提示: 作者被禁止或删除 内容自动屏蔽
dr-pan 发表于 2021-7-30 14:25
snakenba580 发表于 2021-7-30 14:29
guoguo8848 发表于 2021-7-30 15:20
学习学习,谢谢啦
hahayuan 发表于 2021-7-30 16:31
??这么水的贴不删掉吗?浪费流量。。。
冰茶荼 发表于 2021-7-30 16:36
好多人新灌水贴
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-11-26 00:43

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表