集合
文章平均质量分 75
TRACY吹西
热爱
展开
-
220-224 集合体系结构
220 集合体系结构【集合知识回顾】集合类的特点;提供一种存储空间可变的存储模型,存储的数据容量可以随时发生改变【集合类体系结构】先学习接口,然后学实现类221 Collection集合概述和使用【collection集合概述】- 是单列集合的顶层接口,它表示一组对象,这些对象也被称为collection的元素- JDK不提供此接口的任何直接实现,它提供更具体的子接口(如Set和List)实现Collection是一个接口,不是类【创建Collect.原创 2021-11-24 09:22:08 · 195 阅读 · 0 评论 -
225 (案例)集合存储学生对象并遍历
225 (案例)集合存储学生对象并遍历【需求】创建一个存储学生对象的集合,存储3个学生对象,遍历这个集合。> 在前两节课的讲解中,用的是字符串类型的集合,现在要用对象类型的集合了【思路】1.定义学生类2.创建Collection集合对象3.创建学生对象4.添加学生到集合中5.遍历集合--------------------------------------------------------------(module)myCollection(pack原创 2021-11-24 09:25:00 · 259 阅读 · 0 评论 -
226 List集合概述和特点
226 List集合概述和特点List是一个接口【帮助文档摘要】pubilc Interface List<E>Extends Collection<E>有序集合(也称为序列),该界面的用户可以精确控制列中每个元素的插入位置。用户可以通过整数索引(列表中的位置)访问元素,并搜索列表中的每个元素。与集合不同,列表通常允许重复的元素。更正式地,列表通常允许成对的元素e1和e2,使得e1.equals(e2),并且如果它们允许空元素,它们通常允许多个空元素。有人可能原创 2021-11-23 10:20:27 · 419 阅读 · 0 评论 -
227 List集合的特有方法
227 List集合的特有方法 方法名 说明 1 void add(intindex,E element) 在集合中的指定位置,插入指定的元素 2 E remove(int index) 删除指定位置的元素,返回被删除的元素 3 E set(int index,E element).原创 2021-11-23 10:19:43 · 69 阅读 · 0 评论 -
228 (案例)List集合存储学生对象并遍历
228 (案例)List集合存储学生对象并遍历> 225做过这个案例,当时用的是Collection集合【需求】创建一个存储学生对象的集合,存储3个学生对象,遍历这个集合。【思路】1.定义学生类2.创建Collection集合对象3.创建学生对象4.添加学生到集合中5.遍历集合。2种方法:1.iterator迭代器,2.for循环--------------------------------------------------------------cla原创 2021-11-23 10:19:06 · 233 阅读 · 0 评论 -
229 «并发修改异常
229 «并发修改异常(这节课很复杂,半懂)【课程思路】代码:创建集合、输入3个元素、if循环/如果元素里有某元素则add某元素代码运行:报错ConcurrentModificationExpection并发修改异常的源码分析按报错原因搜索,收集相关类、方法的源码,找到报错的原因,关键源码;final void checkForComodification() {if (modCount != expectedModCount)...原创 2021-11-23 10:18:29 · 167 阅读 · 0 评论 -
230 «列表迭代器
230 «列表迭代器(这节课很复杂,半懂)> 实际上,逆序输出很少用,正序输出多用iterator而非listiterator,重点掌握iterator即可ListIterator,列表迭代器,通过List集合的listIterator()方法得到,是List集合特有的迭代器列表的迭代器,允许程序员沿任意方向遍历列表,在迭代过程中修改列表,并获取迭代器在列表中的当前位置。 An iterator for lists that allows the programmer to原创 2021-11-23 10:17:55 · 198 阅读 · 0 评论 -
231 增强for循环
231 增强for循环增强型for语句,有时称为for-each-loop语句增强for循环的目的,简化数组和Collection集合的遍历- 实现Iterator接口的类允许其对象成为增强型for语句的目标- 出现于JDK5后,内部原理是一个Iterator迭代器> 来自帮助文档,public interface Iterable<T>,实现此接口允许对象成为增强型for语句的目标>Collection体系的集合都可以成为增强型for语句的目标【增强f.原创 2021-11-23 09:54:08 · 292 阅读 · 0 评论 -
232 (案例)List集合存储学生对象的3种方式
232 (案例)List集合存储学生对象的3种方式【需求】1.定义学生类2.创建List集合对象3.创建学生对象4.添加学生到集合5.遍历集合——分别使用3种方式实现这一步:迭代器、for循环、增强型for循环-1-迭代器,集合特有的遍历方式-2-for循环,带索引的遍历方式-3-增强型for循环,最方便的遍历方式,但不带索引--------------------------------------------------------------class.原创 2021-11-23 09:53:02 · 1116 阅读 · 0 评论 -
233、234 数据结构之栈、列、数组、链表
233 数据结构之栈和列数据结构是计算机存储、组织数据的方式。是指相互之间存在一种或多种特定关系的数据元素的集合。通常情况下,精心选择的数据结构可以带来更高的运行、存储效率。(数据结构)【栈】栈顶、栈底数据进入栈模型称为:压栈or进栈- 第一个进栈的元素位于:栈底- 末一个进栈的元素位于:栈顶ABCD---数据离开栈模型称为:弹栈or出栈- 栈顶的元素:最先出栈- 栈底的元素:最后出栈DCBA(数据结构)【队列】前端、后端数据进入.原创 2021-11-23 09:52:21 · 99 阅读 · 0 评论 -
235-238 List,ArrayList,LinkedList,Set的特点
235 List集合子类的特点List的子类1.ArrayList2.LinkedList(查看帮助文档) 底层数据结构 查询效率 增删效率 ArrayList(常用) 序列or列表 快 慢 列表接口的可调整大小的数组实现。实现所有可选的列表操作,并允许所有元素,包括null。除了..原创 2021-11-23 09:51:00 · 85 阅读 · 0 评论 -
239-242 hash哈希
239 哈希值 1 package e239; 2 // 创建学生对象 3 // 依次验证 4 // 同一对象多次调用的哈希值相同, 5 // 不同对象的哈希值不同可通过重写方法实现不同对象的哈希值相同 6 // 英文字符串的哈希值不同,汉字字符串的哈希值相同...原创 2021-11-23 09:48:40 · 188 阅读 · 0 评论 -
243 HashSet集合存储学生对象并遍历
243 HashSet集合存储学生对象并遍历这个案例练习过多次了,用HashSet来做有什么不同?——如果学生对象的成员变量值相同,视为同一个对象不做特殊处理前,相同姓名、年龄的学生时可以重复添加到HashSet里的如何保证相同的元素不重复添加?——重写equals()方法和hashCode()方法即可,且使用generator工具可便捷地实现重写(在Student类里)右键-generator-construct- equals and hashCode----------------原创 2021-11-22 08:57:48 · 298 阅读 · 0 评论 -
244 LinkedHashSet集合概述和特点
244 LinkedHashSet集合概述和特点(帮助文档)classLinkedHashSet<E>implements Set<E>哈希表和链表实现的Set接口,具有可预测的迭代次序。该实现与HashSet不同之处在于它保持双向链表列表的所有条目。该链表定义了迭代排序,它是将元素插入集合的顺序。如果一个元件被重新插入到组,顺序不受影响。例如,如果调用add方法前已有相同的元素,则返回true,元素被重新插入集合。【LinkedHashSet集.原创 2021-11-22 08:56:42 · 134 阅读 · 0 评论 -
245 TreeSet集合概述和特点
245 TreeSet集合概述和特点(帮助文档)classTreeSet<E>implements Comparable间接实现Set接口,非直接实现TreeSet <- NavigableSet <- Comparable <- SetComparable比较器接口,支持自然排序TreeSet实现了Comparable比较器接口,可使用natural order自然排序或Comparable排序,取决于所使用的构造方法【TreeSet集合的特.原创 2021-11-22 08:48:45 · 120 阅读 · 0 评论 -
246 自然排序Comparable的使用
246 自然排序Comparable的使用(复杂)【自然排序Comparable的使用】- 存储学生对象并遍历,创建TreeSet集合使用无参构造方法- 要求:按照年龄从大到小排序,年龄相同的按姓名字母顺序排序【代码练习思路】思路:创建对象、创建集合、添加元素、输出元素按照以上思路运行,报错了,classCastException类转换异常查看帮助文档可知,classComparable,该接口对实现它的每一个对象强加一个整体排序,这个排序被称为类的自然排序,类的com.原创 2021-11-22 08:48:12 · 70 阅读 · 0 评论 -
247 比较器Comparator的使用
247 比较器Comparator的使用【需求】存储学生对象并遍历,创建TreeSet集合,使用带参构造方法要求,按照年龄从小到大排序,年龄相同的按姓名的字母顺序排列-Comparable是一个接口,要实现它需要先有一个实现类。在这里,采用匿名内部类的方式实现1 package e247;23 import java.util.Comparator;4 import java.util.TreeSet;56 public classTreeSetDemo{..原创 2021-11-22 08:47:37 · 92 阅读 · 0 评论 -
248 成绩排序
【学习方式:看视频】B站上有很多资源,而且好多是系统讲一个课程的,比如Java基础。感谢B站。用这种课,我个人喜欢用视频剪辑软件把它加工一下:合并、加速。原生视频一般十分钟一个,我每5个合并一个,并且加速1.2。加工好了用U盘、电视来看。用电视看有2个突出的好处:屏幕够大、和笔记分离,暂停快进后退都方便。电视剧可以想跳就跳、一边做家务一边看。课程视频必须全神贯注地看,暂停视频思考一下,后退重看,一遍不明白再看两遍,都是需要的。否则视频看完了,时间用了,脑子里却一片茫然。【学习方式:写笔记】原创 2021-11-22 08:47:10 · 176 阅读 · 0 评论 -
249 不重复的随机数
249 不重复的随机数【需求】获取10个1-20之间的随机数,要求随机数不能重复,并在控制台输出【思路】1. 创建Set集合对象,Set保证不重复2. 创建随机数对象,用random获取随机数3. 判断集合的长度是不是小于10,并且循环,直到集合的长度等于10- - 是,产生一个随机数,添加到集合- - 不是,停止添加元素--------------------------------------------------------------1 package e2原创 2021-11-22 08:45:55 · 223 阅读 · 0 评论 -
250-253 泛型
250 泛型概述和好处【泛型概述】泛型是JDK5引入的特性,它提供了编译时类型安全检测机制。该机制允许在编译时检测到非法的类型,本质是参数化类型,也就是说所操作的数据类型被指定为一个参数。参数化类型如何理解?——将类型由原来的类型参数化,然后在使用or调用时传入具体的类型这种参数类型可以用在类、方法、接口中,分别被称为泛型类、泛型方法、泛型接口-【泛型定义格式】- <类型>:指定1种类型的格式- <类型1,类型2,类型3…>,指定多种类型的格式原创 2021-11-22 08:45:24 · 74 阅读 · 0 评论 -
254 类型通配符
254 类型通配符为了表示各种泛型List的父类,我们可以使用类型通配符- 类型通配符:<?>- 例如,List<?>表示元素类型未知的List,它的元素可以匹配任何类型- - 这种带通配符的List仅表示它是各种泛型的父类,并不能把元素添加到其中·如果不希望List<?>是任何泛型的父类,只希望它代表某一类泛型的父类,可以使用通配符的上限【通配符上限】- <?extends类型>- 例如,List<?extends原创 2021-11-22 08:44:36 · 271 阅读 · 0 评论 -
255、256 可变参数
255 可变参数package e255;public classArgsDemo01 {public static void main(String[] args) {System.out.println(sum(1,2));System.out.println(sum(1,2,3));System.out.println(sum(1,2,3,4)); }public static ...原创 2021-11-22 08:43:38 · 83 阅读 · 0 评论 -
257-261 Map集合
257 Map集合概述和特点interface Map<K,V> extends utilK,Map里键(key)的类型V,Map里值(value)的类型键值对将键映射到值的对象,不能包含重复的键,每个键可以映射到最多1个值·例如,学号和姓名- student001 李磊- student002 韩梅梅- student003 刘娟创建Map集合的对象,1.使用多态的方式,2.具体的实现类是HashMapMap里键是唯一的,两键相同时,后期出现的键原创 2021-11-19 10:02:59 · 71 阅读 · 0 评论 -
262 hashmap集合练习之:键是String
262 hashmap集合练习之:键是String【需求】创建一个HashMap集合,键是学号(String),值是学生对象(Student)。存储3个集合元素遍历集合【思路】1. 定义Student类2. 创建HashMap集合,键值对是String,Student3. 创建Student对象4. 添加3个元素5. 遍历集合--------------------------------------------------------------packag原创 2021-11-19 10:02:10 · 213 阅读 · 0 评论 -
263 hashmap集合练习之:键是Student
263 hashmap集合练习之:键是Student【需求】创建一个HashMap集合,键是Student对象,值是String住址存储多个键值对,并遍历要求:如果学生对象的变量值相同,视为同一个对象【思路】1. 定义Student类,注意!要在Student类里重写2个方法(可快捷生成),保证学生的唯一性---1-equals方法---2-HashMap方法2. 创建HashMap集合3. 创建学生对象4. 添加学生到集合的值5. 遍历集合-------原创 2021-11-19 10:01:23 · 220 阅读 · 0 评论 -
264 集合嵌套之ArrayList嵌套hashmap
264 集合嵌套之ArrayList嵌套hashmap看起来很复杂的样子?——还好【需求】创建一个ArrayList集合,存储3个元素,每个元素都是HashMap,HashMap的键、值是String,并遍历【思路】1. 创建ArrayList集合2. 创建HashMap集合,并添加键值对元素3. 添加HashMap到ArrayList集合4. 遍历ArrayList集合-------------------------------------------------原创 2021-11-19 10:00:41 · 342 阅读 · 0 评论 -
265 集合嵌套之hashmap嵌套ArrayList
265 集合嵌套之hashmap嵌套ArrayList【报错了】尝试不看课程自己写,报编译时错误,代码如下package e265;import java.util.ArrayList;import java.util.HashMap;public classHashMapDemo{public static void main(String[] args) {HashMap<ArrayList<String>> ha = ...原创 2021-11-19 09:59:58 · 132 阅读 · 0 评论 -
266 统计字符串中每个字符出现的次数
266 统计字符串中每个字符出现的次数【需求】键盘录入一个字符串,统计字符串中每个字符出现的次数例如,键盘录入“aababcabcdabcde”,在控制台输出“a(5)b(4)c(3)d(2)e(1)”【分析】- 我们可以把结果分成几个部分来看:a(5),b(4),c(3),d(2),e(1)- 每一个部分可以看成是:字符和字符对应的次数组成- 这样的数据,我们可以通过HashMap集合来存储,键是字符,值是字符出现的次数- - 注意,键是字符,对应包装类Character,原创 2021-11-19 09:58:51 · 307 阅读 · 0 评论 -
267 Collections概述和使用
267 Collections概述和使用(查看帮助文档)Collection,接口,单列集合的顶层接口Collections,类,一个具体的类,classCollections extends util针对集合进行操作的工具类> 此类仅由对集合进行操作或返回集合的静态方法组成。它包含对集合“包装器”(wrappers)进行操作的多态算法,包装器返回由指定集合支持的新集合,以及一些其他零碎的东西。> 如果提供给此类的集合或类对象为null,则此类的所有方法都会引发Nu.原创 2021-11-19 09:58:16 · 61 阅读 · 0 评论 -
268 ArrayList集合存储学生并排序
268 ArrayList集合存储学生并排序【需求】用ArrayList集合存储学生对象,使用Collections对学生进行排序,按年龄从大到小顺序排列,年龄相同时按姓名的字母顺序排序> 用TreeSet集合练过这个,TreSet集合可以对元素进行排序【思路】定义Student类 创建ArrayList集合对象 创建Student对象 添加Student到ArrayList 用Collections对ArrayList排序 遍历集合------------------原创 2021-11-19 09:57:37 · 340 阅读 · 0 评论 -
269-271 模拟斗地主升级版案例分析
270 模拟斗地主升级版案例分析(这节课只是分析,不写代码)【需求】实现洗牌、发牌、看牌要求:对牌排序,这里使用对索引进行排序的方式 HashMap做牌 ArrayList发牌 TreeSet拿牌 key value (自动按升序排列每个玩家手里的牌) 0 H 0原创 2021-11-19 09:56:30 · 353 阅读 · 0 评论 -
295 字符流读数据的2种方式
295 字符流读数据的2种方式 方法 描述 1 int read() 每次读一个字符数据 2 int read(char[] cbuf) 每次读一个字符数组 【复习】用代码做好所需的文件,如何用代码创建文件、写入内容?C:\users\13833123813\myCharStream\src\e295\text原创 2021-11-17 10:03:55 · 75 阅读 · 0 评论 -
303 集合到文件
303集合到文件【需求】把ArrayList集合里的字符串数据写入到,文本文件【要求】每一个字符串元素对应文件里的一行【思路】创建ArrayList集合 添加集合的字符串元素 创建字符 缓冲 输出流 对象 遍历集合,获取每个字符串数据 调用字符 缓冲 输出流 对象 的方法 写数据 释放资源【注意】我们要复制的,数据源,可能是文件,也可能是集合。我们要做的,可能是把系统数据生成为文件,也可能是把文件录入为系统数据。-------------------------.原创 2021-11-15 10:21:55 · 76 阅读 · 0 评论 -
304 文件到集合
304文件到集合【需求】把文本文件里的数据 读取到 集合,并 遍历集合【要求】文件里的一行 对应 集合里的 一个元素【思路】(准备)(用输出流写好文本文件)创建字符缓冲输入流对象 创建AL集合对象 调用字符缓冲输入流对象 的方法 读数据 读数据 并 存储到 集合 释放资源 遍历集合--------------------------------------------------------------package e304;import java.i.原创 2021-11-15 10:21:43 · 57 阅读 · 0 评论 -
305 (案例)点名器
305(案例)点名器【需求】有一个文件,里面是学生姓名,每个姓名占一行。用代码实现随机点名器。【思路】(准备)(一个文件,里面是学生姓名,每个姓名占一行。)创建 字符 缓冲 输入流 对象 创建 AL集合 对象 调用输入流 方法 读数据 添加 字符串数据 到 集合 释放资源 使用Random产生随机数,随机数的范围为0-size,size是集合的元素数 以随机数为索引获取集合元素 写屏------------------------------------------...原创 2021-11-15 10:21:30 · 61 阅读 · 0 评论 -
306 集合到文件改进版
306集合到文件改进版【需求】把ArrayList集合里的学生对象数据写入到,文本文件。【要求】每一个学生对象元素对应文件里的一行【思路】定义学生类 创建AL集合 创建学生对象 添加 学生对象 到 集合 创建 字符缓冲输出流 对象 遍历集合,得到每一个学生对象数据 把学生对象的数据拼接成指定格式的字符串:“学号,姓名,年龄,住址”【】 调用输出流对象的方法 写数据 释放资源----------------------------------------------.原创 2021-11-15 10:21:20 · 49 阅读 · 0 评论 -
307 文件到集合改进版
307文件到集合改进版【需求】把文本文件里的数据读取到集合,遍历集合文本文件内容:s001,MOLE,21,UGs002,RABBIT,42,HOLEs003,RAT,20,RB【要求】文件中每一行的数据对应学生对象的成员变量值【思路】(准备)(学生信息txt文件)定义学生类 创建 字符缓冲输入流对象 创建 AL集合对象 调用 输入流对象 的方法 读数据 用split()分割 读到的数据,得到 字符串 数组【】 创建 学生对象 提取 字符串 数组 的.原创 2021-11-15 10:21:06 · 187 阅读 · 0 评论 -
308 集合到文件数据排序改进版
308集合到文件数据排序改进版【需求】键盘录入5个学生的信息,每个学生。包括姓名、语文分数、数学分数、英语分数。顺序。按总分从高到低 顺序写入文件格式。姓名:语文分数,数学分数,英语分数,例如MOLE:80,70,71【思路】定义学生类 创建 TreeSet集合,用 比较器排序 实现排序【】 键盘录入 学生数据 创建 学生对象,把 学生数据 赋值给 学生对象成员变量 添加 学生对象 到TreeSet集合 创建 字符缓冲输出流对象 遍历集合,得到每个学生对象 拼接 .原创 2021-11-15 10:20:55 · 191 阅读 · 0 评论 -
320 Properties作为Map集合的使用
320 Properties作为Map集合的使用(myOtherStream)(这是集合?)> properties,n.所有物;财产;财物;不动产;房地产;房屋及院落;庄园,property的复数(查看帮助文档 - Properties) 软件包 java.util Class Properties java.lang.Object java.util.Dictionary<K,V> java.util.Hashtab...原创 2021-11-16 09:45:43 · 65 阅读 · 0 评论 -
321 Properties作为Map集合的特有方法
321 Properties作为Map集合的特有方法(myOtherStream)【Properties作为Map集合的特有方法】 Object setProperties(String key,String value) 设置集合的键和值,都是String类型,底层调用Hashtable的方法put String getProperty(String key) 使用此属性列表中指定的键搜索属性 Set&l原创 2021-11-15 10:23:20 · 79 阅读 · 0 评论