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

专门做网站的凤凰天机精品资料网

专门做网站的,凤凰天机精品资料网,国外直播平台tiktok,自己做的网站百度收录目录 1. 集合框架概述 1.1 生活中的容器 1.2 数组的特点与弊端 1.3 Java集合框架体系 1.4 集合的使用场景 2. Collection接口及方法 2.1 添加 2.2 判断 2.3 删除 2.4 其它 3. Iterator(迭代器)接口 3.1 Iterator接口 3.2 迭代器的执行原理 3.3 foreach循环 1. 集…目录 1. 集合框架概述 1.1 生活中的容器 1.2 数组的特点与弊端 1.3 Java集合框架体系 1.4 集合的使用场景 2. Collection接口及方法 2.1 添加 2.2 判断 2.3 删除 2.4 其它 3. Iterator(迭代器)接口 3.1 Iterator接口 3.2 迭代器的执行原理 3.3 foreach循环 1. 集合框架概述 1.1 生活中的容器 1.2 数组的特点与弊端 一方面面向对象语言对事物的体现都是以对象的形式为了方便对多个对象的操作就要对对象进行存储。 另一方面使用数组存储对象方面具有一些弊端而Java 集合就像一种容器可以动态地把多个对象的引用放入容器中。 数组在内存存储方面的特点 数组初始化以后长度就确定了。 数组中的添加的元素是依次紧密排列的有序的可以重复的。 数组声明的类型就决定了进行元素初始化时的类型。不是此类型的变量就不能添加。 可以存储基本数据类型值也可以存储引用数据类型的变量 数组在存储数据方面的弊端 数组初始化以后长度就不可变了不便于扩展 数组中提供的属性和方法少不便于进行添加、删除、插入、获取元素个数等操作且效率不高。 数组存储数据的特点单一只能存储有序的、可以重复的数据 Java 集合框架中的类可以用于存储多个对象还可用于保存具有映射关系的关联数组。 1.3 Java集合框架体系 Java 集合可分为 Collection 和 Map 两大体系 Collection接口用于存储一个一个的数据也称单列数据集合。 List子接口用来存储有序的、可以重复的数据主要用来替换数组动态数组 实现类ArrayList(主要实现类)、LinkedList、Vector Set子接口用来存储无序的、不可重复的数据类似于高中讲的集合 实现类HashSet(主要实现类)、LinkedHashSet、TreeSet Map接口用于存储具有映射关系“key-value对”的集合即一对一对的数据也称双列数据集合。(类似于高中的函数、映射。(x1,y1),(x2,y2) --- y f(x) ) HashMap(主要实现类)、LinkedHashMap、TreeMap、Hashtable、Properties JDK提供的集合API位于java.util包内 图示集合框架全图 简图1Collection接口继承树 简图2Map接口继承树 1.4 集合的使用场景 2. Collection接口及方法 JDK不提供此接口的任何直接实现而是提供更具体的子接口如Set和List去实现。 Collection 接口是 List和Set接口的父接口该接口里定义的方法既可用于操作 Set 集合也可用于操作 List 集合。方法如下 2.1 添加 1add(E obj)添加元素对象到当前集合中 2addAll(Collection other)添加other集合中的所有元素对象到当前集合中即this this ∪ other 注意add和addAll的区别 import org.junit.Test;import java.util.ArrayList; import java.util.Collection;public class TestCollectionAdd {Testpublic void testAdd(){//ArrayList是Collection的子接口List的实现类之一。Collection coll new ArrayList();coll.add(小李广);coll.add(扫地僧);coll.add(石破天);System.out.println(coll);}Testpublic void testAddAll(){Collection c1 new ArrayList();c1.add(1);c1.add(2);System.out.println(c1集合元素的个数 c1.size());//2System.out.println(c1 c1);Collection c2 new ArrayList();c2.add(1);c2.add(2);System.out.println(c2集合元素的个数 c2.size());//2System.out.println(c2 c2);Collection other new ArrayList();other.add(1);other.add(2);other.add(3);System.out.println(other集合元素的个数 other.size());//3System.out.println(other other);System.out.println();c1.addAll(other);System.out.println(c1集合元素的个数 c1.size());//5System.out.println(c1.addAll(other) c1);c2.add(other);System.out.println(c2集合元素的个数 c2.size());//3System.out.println(c2.add(other) c2);} } 注意coll.addAll(other);与coll.add(other); 2.2 判断 3int size()获取当前集合中实际存储的元素个数 4boolean isEmpty()判断当前集合是否为空集合 5boolean contains(Object obj)判断当前集合中是否存在一个与obj对象equals返回true的元素 6boolean containsAll(Collection coll)判断coll集合中的元素是否在当前集合中都存在。即coll集合是否是当前集合的“子集” 7boolean equals(Object obj)判断当前集合与obj是否相等 import org.junit.Test;import java.util.ArrayList; import java.util.Arrays; import java.util.Collection;public class TestCollectionContains {Testpublic void test01() {Collection coll new ArrayList();System.out.println(coll在添加元素之前isEmpty coll.isEmpty());coll.add(小李广);coll.add(扫地僧);coll.add(石破天);coll.add(佛地魔);System.out.println(coll的元素个数 coll.size());System.out.println(coll在添加元素之后isEmpty coll.isEmpty());}Testpublic void test02() {Collection coll new ArrayList();coll.add(小李广);coll.add(扫地僧);coll.add(石破天);coll.add(佛地魔);System.out.println(coll coll);System.out.println(coll是否包含“小李广” coll.contains(小李广));System.out.println(coll是否包含“宋红康” coll.contains(宋红康));Collection other new ArrayList();other.add(小李广);other.add(扫地僧);other.add(尚硅谷);System.out.println(other other);System.out.println(coll.containsAll(other) coll.containsAll(other));}Testpublic void test03(){Collection c1 new ArrayList();c1.add(1);c1.add(2);System.out.println(c1集合元素的个数 c1.size());//2System.out.println(c1 c1);Collection c2 new ArrayList();c2.add(1);c2.add(2);System.out.println(c2集合元素的个数 c2.size());//2System.out.println(c2 c2);Collection other new ArrayList();other.add(1);other.add(2);other.add(3);System.out.println(other集合元素的个数 other.size());//3System.out.println(other other);System.out.println();c1.addAll(other);System.out.println(c1集合元素的个数 c1.size());//5System.out.println(c1.addAll(other) c1);System.out.println(c1.contains(other) c1.contains(other));System.out.println(c1.containsAll(other) c1.containsAll(other));System.out.println();c2.add(other);System.out.println(c2集合元素的个数 c2.size());System.out.println(c2.add(other) c2);System.out.println(c2.contains(other) c2.contains(other));System.out.println(c2.containsAll(other) c2.containsAll(other));}} 2.3 删除 8void clear()清空集合元素 9 boolean remove(Object obj) 从当前集合中删除第一个找到的与obj对象equals返回true的元素。 10boolean removeAll(Collection coll)从当前集合中删除所有与coll集合中相同的元素。即this this - this ∩ coll 11boolean retainAll(Collection coll)从当前集合中删除两个集合中不同的元素使得当前集合仅保留与coll集合中的元素相同的元素即当前集合中仅保留两个集合的交集即this this ∩ coll 注意几种删除方法的区别 import org.junit.Test;import java.util.ArrayList; import java.util.Collection; import java.util.function.Predicate;public class TestCollectionRemove {Testpublic void test01(){Collection coll new ArrayList();coll.add(小李广);coll.add(扫地僧);coll.add(石破天);coll.add(佛地魔);System.out.println(coll coll);coll.remove(小李广);System.out.println(删除元素\小李广\之后coll coll);coll.clear();System.out.println(coll清空之后coll coll);}Testpublic void test02() {Collection coll new ArrayList();coll.add(小李广);coll.add(扫地僧);coll.add(石破天);coll.add(佛地魔);System.out.println(coll coll);Collection other new ArrayList();other.add(小李广);other.add(扫地僧);other.add(尚硅谷);System.out.println(other other);coll.removeAll(other);System.out.println(coll.removeAll(other)之后coll coll);System.out.println(coll.removeAll(other)之后other other);}Testpublic void test03() {Collection coll new ArrayList();coll.add(小李广);coll.add(扫地僧);coll.add(石破天);coll.add(佛地魔);System.out.println(coll coll);Collection other new ArrayList();other.add(小李广);other.add(扫地僧);other.add(尚硅谷);System.out.println(other other);coll.retainAll(other);System.out.println(coll.retainAll(other)之后coll coll);System.out.println(coll.retainAll(other)之后other other);}} 2.4 其它 12Object[] toArray()返回包含当前集合中所有元素的数组 13hashCode()获取集合对象的哈希值 14iterator()返回迭代器对象用于集合遍历 3. Iterator(迭代器)接口 3.1 Iterator接口 在程序开发中经常需要遍历集合中的所有元素。针对这种需求JDK专门提供了一个接口java.util.Iterator。Iterator接口也是Java集合中的一员但它与Collection、Map接口有所不同。 Collection接口与Map接口主要用于存储元素 Iterator被称为迭代器接口本身并不提供存储对象的能力主要用于遍历Collection中的元素 Collection接口继承了java.lang.Iterable接口该接口有一个iterator()方法那么所有实现了Collection接口的集合类都有一个iterator()方法用以返回一个实现了Iterator接口的对象。 public Iterator iterator(): 获取集合对应的迭代器用来遍历集合中的元素的。 集合对象每次调用iterator()方法都得到一个全新的迭代器对象默认游标都在集合的第一个元素之前。 Iterator接口的常用方法如下 public E next():返回迭代的下一个元素。 public boolean hasNext():如果仍有元素可以迭代则返回 true。 注意在调用it.next()方法之前必须要调用it.hasNext()进行检测。若不调用且下一条记录无效直接调用it.next()会抛出NoSuchElementException异常。 举例 import org.junit.Test;import java.util.ArrayList; import java.util.Collection; import java.util.Iterator;public class TestIterator {Testpublic void test01(){Collection coll new ArrayList();coll.add(小李广);coll.add(扫地僧);coll.add(石破天);Iterator iterator coll.iterator();System.out.println(iterator.next());System.out.println(iterator.next());System.out.println(iterator.next());System.out.println(iterator.next()); //报NoSuchElementException异常}Testpublic void test02(){Collection coll new ArrayList();coll.add(小李广);coll.add(扫地僧);coll.add(石破天);Iterator iterator coll.iterator();//获取迭代器对象while(iterator.hasNext()) {//判断是否还有元素可迭代System.out.println(iterator.next());//取出下一个元素}} }3.2 迭代器的执行原理 Iterator迭代器对象在遍历集合时内部采用指针的方式来跟踪集合中的元素接下来通过一个图例来演示Iterator对象迭代元素的过程 使用Iterator迭代器删除元素java.util.Iterator迭代器中有一个方法void remove() ; 注意 Iterator可以删除集合的元素但是遍历过程中通过迭代器对象的remove方法不是集合对象的remove方法。 如果还未调用next()或在上一次调用 next() 方法之后已经调用了 remove() 方法再调用remove()都会报IllegalStateException。 Collection已经有remove(xx)方法了为什么Iterator迭代器还要提供删除方法呢因为迭代器的remove()可以按指定的条件进行删除。 3.3 foreach循环 foreach循环也称增强for循环是 JDK5.0 中定义的一个高级for循环专门用来遍历数组和集合的。 foreach循环的语法格式 for(元素的数据类型 局部变量 : Collection集合或数组){ //操作局部变量的输出操作 } //这里局部变量就是一个临时变量自己命名就可以 举例 import org.junit.Test;import java.util.ArrayList; import java.util.Collection;public class TestForeach {Testpublic void test01(){Collection coll new ArrayList();coll.add(小李广);coll.add(扫地僧);coll.add(石破天);//foreach循环其实就是使用Iterator迭代器来完成元素的遍历的。for (Object o : coll) {System.out.println(o);}}Testpublic void test02(){int[] nums {1,2,3,4,5};for (int num : nums) {System.out.println(num);}System.out.println(-----------------);String[] names {张三,李四,王五};for (String name : names) {System.out.println(name);}} } 对于集合的遍历增强for的内部原理其实是个Iterator迭代器。如下图。 它用于遍历Collection和数组。通常只进行遍历元素不要在遍历的过程中对集合元素进行增删操作
http://www.tj-hxxt.cn/news/141965.html

相关文章:

  • 铜仁建设厅官方网站WordPress门户主题破解
  • 新加坡网站建设什么网站开发外贸客户
  • 公司企业网站模板下载wordpress英文主题破解版
  • 怀化汽车网站成都企业网站商城定制
  • 江西宗杰建设工程有限公司网站有效推广网站
  • 个人网站的色彩设计怎么做长春网站制作计划
  • 做酒网站app上架应用市场需要多少费用
  • 网站开发商品管理用struts2框架做的网站
  • 怎么查看网站提交百度的度新手怎么做网站推广
  • 企业可以备案几个网站自助建站免费建站平台
  • 公司网站与营销网站在栏目上的不同邀请推广app
  • 淄博学校网站建设哪家好南宁码科网站建设
  • 湘潭网站建设 电话磐石网络广东seo网站设计
  • 江苏电商网站开发苍溪县规划和建设局网站
  • 在线建站|网页制作|网站建设平台许昌市网站建设
  • jsp网站开发实例视频移动端app
  • 数据库网站开发站长之家特效网站
  • 做网站的公司还市场吗百度网址导航主页
  • 投教网站建设临沂文联最新消息
  • 营销型类型网站多少钱些全国教育平台网站建设
  • 北京做网站开发公司电话苏州营销型网站制作多少钱
  • 云空间布置网站免费查询公司信息
  • 邵阳做网站哪家好企业邮箱263登录入口
  • php新手网站开发二级建造师官网查询系统
  • excel做网站二维码网站开发的完整流程
  • 微软网站开发软件如何创业做网站
  • 哪家公司做跳转网站dedecms源码下载
  • 海南创作什么网站谷歌seo推广公司
  • 网站关键词提升店铺首页图片
  • 特效网站模板半夜一分快三app推荐直播下载