
集合 - Java版
文章平均质量分 75
介绍Java的集合
巧克力拌面
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
1.单列集合顶层接口Collection的遍历方式
循环条件(it.hasNext())指的是当前位置有元素时返回true,进行循环体语句,上述图片中,list为一个集合的名称,s此时只是一个第三方变量,与集合list没关系。如果要删除,可以用迭代器提供的remove方法进行删除。当指到了一个没有元素的位置时it.hasNext()返回false,循环停止。第三个方法(无返回值)---->此时要用迭代器里的方法去删除。迭代器遍历完毕时,可以用集合的方法进行增加或者删除。(迭代器可以理解为指针,比如上述图片中的蓝色箭头)用一个变量接收获取到的元素,再使用。原创 2024-05-19 15:05:08 · 365 阅读 · 0 评论 -
2.List集合中常见的方法和五种遍历方式
/运行结果为[aaa, bbb, qqq, ccc]//void add(int index,E element)->在此集合中的指定位置插入指定的元素。//E remove(int index)->删除指定索引处的元素,返回被删除的元素(E代表元素)//E set(int index,E element)->修改指定索引处的元素,返回被修改的元素。//不能用集合添加即list.add("qqq");//当中额外添加了一个方法:在遍历的过程中,可以添加元素->不能用add即集合添加元素的方法。原创 2024-05-19 19:32:08 · 1287 阅读 · 0 评论 -
3.LinkedList集合及迭代器的源码分析
iterator源码如下:分析:解决方案:在使用迭代器或者是增强for遍历集合的过程中,不要使用**集合的方法**去添加或者删除元素即可。原创 2024-08-10 23:03:06 · 368 阅读 · 0 评论 -
4.泛型类,泛型方法,泛型接口以及泛型扩展
下拉框的第一个提示的Object e代表可以添加任意类型的数据//构造//set/getreturn age;////1.创建集合的对象//2.添加数据//3.遍历集合获取里面的每一个元素//此时没有泛型,所有元素都提升为Object型/*运行结果为123aaa*/如果所有方法数据类型都不确定,建议用泛型类如果只是某个方法中出现了不确定的数据类型,建议用泛型方法。原创 2024-05-31 20:56:42 · 504 阅读 · 0 评论 -
5.泛型的通配符和综合练习
泛型的通配符->关键点:用来限定类型的范围泛型的通配符表示不确定的类型 也可以进行类型的限定->两种写法:?extends E:表示可以传递E或者E所有的子类类型?super E:表示可以传递E或者E所有的父类类型。原创 2024-07-22 19:41:55 · 346 阅读 · 0 评论 -
6.HashSet,LinkedHashSet详解
LinkedHashSet集合比HashSet集合效率低,因为LinkedHashSet集合在哈希表的基础上又多做了一些事(操作数据顺序)。原创 2024-08-10 22:45:05 · 940 阅读 · 0 评论 -
7.TreeSet的排序方式
例如字符串排序:"aaa","aba","qwer","ab","cd"排序后为:"aaa","ab","aba","cd","qwer"(默认是升序排序)从第一个开始比,只要发现大的就停止比较,对于"ab"和"aba","ab"前两个和"aba"一样,"ab"在第三个比"aba"少一个字母,默认比"aba"小。需求:创建TreeSet集合,并添加3个学生对象学生对象属性:姓名,年龄。要求按照学生的年龄进行排序同年龄按照姓名字母排列(暂不考虑中文)同姓名,同年龄认为是同一个人错解:。原创 2024-08-14 22:53:03 · 1448 阅读 · 0 评论 -
8.Map系列集合
注:Map集合是接口(不能实例化,只能创建实现类对象-->不能new Map),而且存的是一对对象(键和值)-->泛型要写两个。原创 2024-08-14 23:12:38 · 675 阅读 · 0 评论 -
9.HashMap基本的使用
HashMap集合是Map集合中最为常用的一个集合。HashMap集合中,如果键存储的是字符串型和基本数据类型如整型,那么不重写hashCode方法和equals方法也能保证键的唯一性HashMap集合中,如果键存储的是引用数据类型如学生类型,那么必须重写hashCode方法和equals方法才能保证键的唯一性,否则无法实现键的唯一性HashMap集合中,无法保证值的唯一性。原创 2025-02-26 19:00:34 · 410 阅读 · 0 评论 -
10.LinkedHashMap和TreeMap的基本使用
2)键相同时,值不同->添加时以后来添加的为准:(添加元素的put方法有两个功能:添加,覆盖)二.TreeMap集合:(Map集合的儿子)1.特点与排序规则:键:整数表示id值:字符串表示商品名称要求:按照id的升序排列和按照id的降序排列按照id的升序排列:id为整型,属于基本数据类型,默认升序排列,所以无需重写比较规则 Integer类里比较规则compare方法:按照id的降序排列:id为整型,属于基本数据类型,默认升序排列,但此时要降序排列,因此要重写比较规则--原创 2024-08-27 18:18:04 · 984 阅读 · 0 评论 -
11.集合HashMap练习
如果第一名学生投A景点,此时就需要到Map集合中键的位置判断A景点是否存在,显然不存在,表示A景点是第一次出现,此时就把景点A添加到键处,值为1->表示第一名学生统计完毕之后,A景点被投了一次票;如果第三名学生投B景点,此时就需要到Map集合中键的位置判断B景点是否存在,显然不存在,表示B景点是第一次出现,此时就把景点B添加到键处,值为1->表示第三名学生统计完毕之后,B景点被投了一次票;因此为了打印出正确的属性值,就需要重写类Student中的toString方法。原创 2025-02-26 19:07:27 · 679 阅读 · 0 评论 -
12.可变参数
但上述写法较繁琐,因为要求数据的和,不仅要定义数组,还要调用方法求数组里的数据的和,因此可以进行优化,如下:JDK5中加入了可变参数这一特性, 可变参数:方法形参的个数是可以发生变化的,可以是0、1、2...个,多少个参数都无所谓; 可变参数格式:属性类型...名称, 例如:int...args->可变参数的底层就是一个数组,只不过不需要我们自己创建了,Java会帮我们创建好4.可变参数的小细节:在方法的形参中最多只能写一个可变参数->原因:可以把可变参数理解为一个大胖子,有多少吃多少,原创 2025-02-27 11:37:46 · 175 阅读 · 0 评论 -
13.集合工具类Collections
addAll方法中第一个形参的数据类型为Collection<T>,意味着第一个参数是针对单列集合->所以addAll方法只能给单列集合Collection批量添加元素,双列集合Map是不行的addAll方法中第二个形参T...elements是可变参数,意味着无论添加多少个元素都可以shuffle方法的形参List<?> list的数据类型为List<?>,意味着只能传递List的子类集合即ArrayList集合、LinkedList集合和Vector集合。原创 2025-02-28 12:23:59 · 688 阅读 · 0 评论 -
14.综合练习1-随机点名器的两种实现方式
也可以元素随机,索引也随机,但这样效率低(时间复杂度和空间复杂度都较高),就不考虑了。原创 2025-02-28 12:25:49 · 157 阅读 · 0 评论 -
15.综合练习2-带有概率的随机点名
要想解决本例中随机面即概率的问题,可以在集合中添加7个1和3个0(总共就是10个数),此时7个1在集合中占70%,3个0在集合中占30%,然后可以把集合中的1和0都打乱顺序,再从这个集合中抽1或0,此时抽中1的概率为70%,抽中0的概率为30%注:题目的要求是70%的概率随机到男生,30%的概率随机到女生,这里概率针对的是男生和女生,和男生、女生的姓名无关,因此在满足题目要求下对男生、女生的姓名进行随机抽取是不影响本题的。->此时抽中男生的概率为70%,抽中女生的概率为30%。原创 2025-03-03 13:13:39 · 401 阅读 · 0 评论