当前位置: 首页 > news >正文

为什么选用美食做网站主页2022年互联网营销师如何报名

为什么选用美食做网站主页,2022年互联网营销师如何报名,网络营销师报名入口,有什么平台可以接加工单一、集合概述和分类 1.1 集合的分类 已经学习过了ArrayList集合#xff0c;但是除了ArrayList集合#xff0c;Java还提供了很多种其他的集合#xff0c;如下图所示#xff1a; 我想你的第一感觉是这些集合好多呀#xff01;但是#xff0c;我们学习时会对这些集合进行…一、集合概述和分类 1.1 集合的分类 已经学习过了ArrayList集合但是除了ArrayList集合Java还提供了很多种其他的集合如下图所示 我想你的第一感觉是这些集合好多呀但是我们学习时会对这些集合进行分类学习如下图所示一类是单列集合元素是一个一个的另一类是双列集合元素是一对一对的。 Collection是单列集合的根接口Collection接口下面又有两个子接口List接口、Set接口List和Set下面分别有不同的实现类如下图所示 可以自己写代码验证一下各种集合的特点 //简单确认一下Collection集合的特点 ArrayListString list new ArrayList(); //存取顺序一致可以重复有索引 list.add(java1); list.add(java2); list.add(java1); list.add(java2); System.out.println(list); //[java1, java2, java1, java2] HashSetString list new HashSet(); //存取顺序不一致不重复无索引 list.add(java1); list.add(java2); list.add(java1); list.add(java2); list.add(java3); System.out.println(list); //[java3, java2, java1] 1.2 Collection集合的常用方法 接下来我们学习一下Collection集合的一些常用方法这些方法所有Collection实现类都可以使用。 这里我们以创建ArrayList为例来演示 CollectionString c new ArrayList(); //1.public boolean add(E e): 添加元素到集合 c.add(java1); c.add(java1); c.add(java2); c.add(java2); c.add(java3); System.out.println(c); //打印: [java1, java1, java2, java2, java3]//2.public int size(): 获取集合的大小 System.out.println(c.size()); //5//3.public boolean contains(Object obj): 判断集合中是否包含某个元素 System.out.println(c.contains(java1)); //true System.out.println(c.contains(Java1)); //false//4.pubilc boolean remove(E e): 删除某个元素如果有多个重复元素只能删除第一个 System.out.println(c.remove(java1)); //true System.out.println(c); //打印: [java1,java2, java2, java3]//5.public void clear(): 清空集合的元素 c.clear(); System.out.println(c); //打印[]//6.public boolean isEmpty(): 判断集合是否为空 是空返回true 反之返回false System.out.println(c.isEmpty()); //true//7.public Object[] toArray(): 把集合转换为数组 Object[] array c.toArray(); System.out.println(Arrays.toString(array)); //[java1,java2, java2, java3]//8.如果想把集合转换为指定类型的数组可以使用下面的代码 String[] array1 c.toArray(new String[c.size()]); System.out.println(Arrays.toString(array1)); //[java1,java2, java2, java3]//9.还可以把一个集合中的元素添加到另一个集合中 CollectionString c1 new ArrayList(); c1.add(java1); c1.add(java2); CollectionString c2 new ArrayList(); c2.add(java3); c2.add(java4); c1.addAll(c2); //把c2集合中的全部元素添加到c1集合中去 System.out.println(c1); //[java1, java2, java3, java4]最后我们总结一下Collection集合的常用功能有哪些ArrayList、LinkedList、HashSet、LinkedHashSet、TreeSet集合都可以调用下面的方法。 二、Collection遍历方式 各位同学接下来我们学习一下Collection集合的遍历方式。有同学说“集合的遍历之前不是学过吗就用普通的for循环啊? “ 没错之前是学过集合遍历但是之前学习过的遍历方式只能遍历List集合不能遍历Set集合因为以前的普通for循环遍历需要索引只有List集合有索引而Set集合没有索引。 所以我们需要有一种通用的遍历方式能够遍历所有集合。 2.1 迭代器遍历集合 接下来学习的迭代器就是一种集合的通用遍历方式。 代码写法如下 CollectionString c new ArrayList(); c.add(赵敏); c.add(小昭); c.add(素素); c.add(灭绝); System.out.println(c); //[赵敏, 小昭, 素素, 灭绝]//第一步先获取迭代器对象 //解释Iterator就是迭代器对象用于遍历集合的工具) IteratorString it c.iterator();//第二步用于判断当前位置是否有元素可以获取 //解释hasNext()方法返回true说明有元素可以获取反之没有 while(it.hasNext()){//第三步获取当前位置的元素然后自动指向下一个元素.String e it.next();System.out.println(s); }迭代器代码的原理如下 当调用iterator()方法获取迭代器时当前指向第一个元素hasNext()方法则判断这个位置是否有元素如果有则返回true进入循环调用next()方法获取元素并将当月元素指向下一个位置等下次循环时则获取下一个元素依此内推 最后我们再总结一下使用迭代器遍历集合用到哪些方法 2.2 增强for遍历集合 同学们刚才我们学习了迭代器遍历集合但是这个代码其实还有一种更加简化的写法叫做增强for循环。 格式如下 需要注意的是增强for不光可以遍历集合还可以遍历数组。接下来我们用代码演示一em.o下 CollectionString c new ArrayList(); c.add(赵敏); c.add(小昭); c.add(素素); c.add(灭绝);//1.使用增强for遍历集合 for(String s: c){System.out.println(s); }//2.再尝试使用增强for遍历数组 String[] arr {迪丽热巴, 古力娜扎, 稀奇哈哈}; for(String name: arr){System.out.println(name); }2.3 forEach遍历集合 在JDK8版本以后还提供了一个forEach方法也可以遍历集合如果下图所示 我们发现forEach方法的参数是一个Consumer接口而Consumer是一个函数式接口所以可以传递Lambda表达式 CollectionString c new ArrayList(); c.add(赵敏); c.add(小昭); c.add(素素); c.add(灭绝);//调用forEach方法 //由于参数是一个Consumer接口所以可以传递匿名内部类 c.forEach(new ConsumerString{Overridepublic void accept(String s){System.out.println(s);} });//也可以使用lambda表达式对匿名内部类进行简化 c.forEach(s-System.out.println(s)); //[赵敏, 小昭, 素素, 灭绝]2.4 遍历集合案例 接下来我们看一个案例在集合中存储自定义的对象并遍历。具体要求如下 首先我们得写一个电影类用来描述每一步电影应该有哪些信息。 public class Movie{private String name; //电影名称private double score; //评分private String actor; //演员//无参数构造方法public Movie(){}//全参数构造方法public Movie(String name, double score, String actor){this.namename;this.scorescore;this.actoractor;}//...get、set、toString()方法自己补上.. }接着再创建一个测试类完成上面的需求 public class Test{public static void main(String[] args){CollectionMovie movies new ArrayList();movies.add(new MOvie(《肖申克的救赎》, 9.7, 罗宾斯));movies.add(new MOvie(《霸王别姬》, 9.6, 张国荣、张丰毅));movies.add(new MOvie(《阿甘正传》, 9.5, 汤姆汉克斯));for(Movie movie : movies){System.out.println(电影名 movie.getName());System.out.println(评分 movie.getScore());System.out.println(主演 movie.getActor());}} }以上代码的内存原理如下图所示当往集合中存对象时实际上存储的是对象的地址值 集合中存储的是元素对象的地址。 三、List系列集合 前面我们已经把Collection通用的功能学习完了接下来我们学习Collection下面的一个子体系List集合。如下图所示 3.1 List集合的常用方法 List集合是索引的所以多了一些有索引操作的方法如下图所示 //1.创建一个ArrayList集合对象有序、有索引、可以重复 ListString list new ArrayList(); list.add(蜘蛛精); list.add(至尊宝); list.add(至尊宝); list.add(牛夫人); System.out.println(list); //[蜘蛛精, 至尊宝, 至尊宝, 牛夫人]//2.public void add(int index, E element): 在某个索引位置插入元素 list.add(2, 紫霞仙子); System.out.println(list); //[蜘蛛精, 至尊宝, 紫霞仙子, 至尊宝, 牛夫人]//3.public E remove(int index): 根据索引删除元素, 返回被删除的元素 System.out.println(list.remove(2)); //紫霞仙子 System.out.println(list);//[蜘蛛精, 至尊宝, 至尊宝, 牛夫人]//4.public E get(int index): 返回集合中指定位置的元素 System.out.println(list.get(3));//5.public E set(int index, E e): 修改索引位置处的元素修改后会返回原数据 System.out.println(list.set(3,牛魔王)); //牛夫人 System.out.println(list); //[蜘蛛精, 至尊宝, 至尊宝, 牛魔王]3.2 List集合的遍历方式 List集合相比于前面的Collection多了一种可以通过索引遍历的方式所以List集合遍历方式一共有四种 普通for循环只因为List有索引迭代器增强forLambda表达式 ListString list new ArrayList(); list.add(蜘蛛精); list.add(至尊宝); list.add(糖宝宝);//1.普通for循环 for(int i 0; i list.size(); i){//i 0, 1, 2String e list.get(i);System.out.println(e); }//2.增强for遍历 for(String s : list){System.out.println(s); }//3.迭代器遍历 IteratorString it list.iterator(); while(it.hasNext()){String s it.next();System.out.println(s); }//4.lambda表达式遍历 list.forEach(s-System.out.println(s));3.3 ArrayList底层的原理 ArrayList集合底层是基于数组结构实现的也就是说当你往集合容器中存储元素时底层本质上是往数组中存储元素。 特点如下 我们知道数组的长度是固定的但是集合的长度是可变的这是怎么做到的呢原理如下 数组扩容并不是在原数组上扩容原数组是不可以扩容的底层是创建一个新数组然后把原数组中的元素全部复制到新数组中去。 3.4 LinkedList底层原理 LinkedList底层是双链表结构链表结构是由一个一个的节点组成一个节点由数据值、下一个元素的地址组成。如下图所示 假如现在要在B节点和D节点中间插入一个元素只需要把B节点指向D节点的地址断掉重新指向新的节点地址就可以了。如下图所示 假如现在想要把D节点删除只需要让C节点指向E节点的地址然后把D节点指向E节点的地址断掉。此时D节点就会变成垃圾会把垃圾回收器清理掉。 上面的链表是单向链表它的方向是从头节点指向尾节点的只能从左往右查找元素这样查询效率比较慢还有一种链表叫做双向链表不光可以从做往右找还可以从右往左找。如下图所示 LinkedList集合是基于双向链表实现了所以相对于ArrayList新增了一些可以针对头尾进行操作的方法如下图示所示 3.5 LinkedList集合的应用场景 刚才我们学习了LinkedList集合那么LInkedList集合有什么用呢可以用它来设计栈结构、队列结构。 我们先来认识一下队列结构队列结构你可以认为是一个上端开口下端也开口的管子的形状。元素从上端入队列从下端出队列。 入队列可以调用LinkedList集合的addLast方法出队列可以调用removeFirst()方法. //1.创建一个队列先进先出、后进后出 LinkedListString queue new LinkedList(); //入对列 queue.addLast(第1号人); queue.addLast(第2号人); queue.addLast(第3号人); queue.addLast(第4号人); System.out.println(queue);//出队列 System.out.println(queue.removeFirst()); //第4号人 System.out.println(queue.removeFirst()); //第3号人 System.out.println(queue.removeFirst()); //第2号人 System.out.println(queue.removeFirst()); //第1号人接下来我们再用LinkedList集合来模拟一下栈结构的效果。还是先来认识一下栈结构长什么样。栈结构可以看做是一个上端开头下端闭口的水杯的形状。 元素永远是上端进也从上端出先进入的元素会压在最底下所以栈结构的特点是先进后出后进先出 有没有感觉栈结构很像手枪的子弹夹呀第一个压进入的子弹在最底下最后一个才能打出来最后一个压进入的子弹在最顶上第一个打出来。 接着我们就用LinkedList来模拟下栈结构代码如下 //1.创建一个栈对象 LinkedListString stack new ArrayList(); //压栈(push) 等价于 addFirst() stack.push(第1颗子弹); stack.push(第2颗子弹); stack.push(第3颗子弹); stack.push(第4颗子弹); System.out.println(stack); //[第4颗子弹, 第3颗子弹, 第2颗子弹,第1颗子弹]//弹栈(pop) 等价于 removeFirst() System.out.println(statck.pop()); //第4颗子弹 System.out.println(statck.pop()); //第3颗子弹 System.out.println(statck.pop()); //第2颗子弹 System.out.println(statck.pop()); //第1颗子弹//弹栈完了集合中就没有元素了 System.out.println(list); //[]
http://www.w-s-a.com/news/856434/

相关文章:

  • 淄博网赢网站建设网站设计的技术选择
  • 建外贸网站 东莞厦门做网站最好的公司
  • 为您服务网站新网站做百度推广
  • 电子商务免费网站建设网站制作哪个好薇
  • 全面启动门户网站建设中小型企业建设一个网站大概需要多少钱
  • 建网站一般多少钱网站建设上传服务器步骤
  • 手机销售网站怎么做的网站推广优化建设方案
  • 做任务分享赚钱的网站德阳网站建设公司哪家好
  • 云南建设工程质量监督网站wordpress网站导航主题
  • 徐州网站建设哪家好薇手机开源网站代码
  • 更新网站要怎么做呢泰安市58同城招聘网
  • 溧阳网站建设价格企业网站设计费用
  • 我建设的网站打开很慢河北住房和城乡建设厅网站卡
  • 门户网站广告的特点有网站的建设初步定位
  • 建设网站第一步网页建设方案
  • 网站开发需要那些人才wordpress 小工具原理
  • 广州建设局官方网站佛山高端网站制作公司
  • 东莞哪里能学建设网站网站备案值得吗
  • 中山 网站建设 骏域小程序开发课程
  • 北京网站建设成都微商城app官方下载
  • 网站开发用户登陆的安全wordpress 开发网站
  • 网站建设容易出现的问题四川seo关键词工具
  • 做外单网站有哪些内容服务好的南京网站建设
  • 阜阳微商城网站建设百度网站两两学一做心得体会
  • 建设银行积分网站观光农业规划设计
  • jsp项目个人网站开发用织梦做网站有什么公司会要
  • 和田网站制作无限动力网站
  • 长沙口碑好网站建设企业网站 需求
  • 哪个网站建设公司wordpress陌陌主题
  • 湖滨区建设局网站北京国际建设集团网站