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

synology做网站服务器重庆速代网络科技

synology做网站服务器,重庆速代网络科技,网站logo在哪里,wordpress 重写规则一、集合 1.1 简介 集合主要分为两组#xff08;单列集合、双列集合#xff09;#xff0c;Collection 接口有两个重要的子接口 List 和Set#xff0c;它们的实现子类都是单列集合。Map 接口的实现子类是双列集合#xff0c;存放的是 K-V 1.2 关系图 二、Collection 接口…一、集合 1.1 简介 集合主要分为两组单列集合、双列集合Collection 接口有两个重要的子接口 List 和Set它们的实现子类都是单列集合。Map 接口的实现子类是双列集合存放的是 K-V 1.2 关系图 二、Collection 接口和常用方法 public interface CollectionE extends IteratorE 2.1 特点 1、Collection 实现子类可以存放多个元素每个元素可以是 Object 2、有些 Collection 的实现类可以存放重复元素有些不可以。 3、有些 Collection 的实现类是有序的List有些不是有序的Set 4、Collection 接口没有直接的实现子类是通过它的子接口 Set 和 List 来实现的 2.2 常用方法 下面使用实现类 ArrayList 来演示如下 public class CollectionTest {public static void main(String[] args) {Collection list new ArrayList();// add: 添加单个元素list.add(java);list.add(10);list.add(true);System.out.println(listlist);// remove: 删除指定元素list.remove(true);System.out.println(listlist);// contains: 查找元素是否存在System.out.println(list.contains(java));// size: 获取元素个数System.out.println(现在集合的大小为list.size());// isEmpty: 判断是否为空System.out.println(判断集合是不是空的list.isEmpty());// clear: 清空集合list.clear();System.out.println(我要清空集合了现在集合的大小为list.size());// addAll: 添加多个元素ArrayList list2 new ArrayList();list2.add(苹果);list2.add(香蕉);list.addAll(list2);System.out.println(添加完多个元素后集合的大小为list.size());// containsAll: 查找多个元素是否都存在System.out.println(查找多个元素是否都存在list.containsAll(list2));// removeAll: 删除多个元素list.removeAll(list2);System.out.println(删除多个元素后集合的大小为list.size());} } 2.3 接口遍历 2.3.1 Iterator 方式 Iterator 对象称为迭代器主要用于遍历 Collection 集合中的元素。所有实现了 Collection 接口的集合类都有一个 iterator() 方法用于返回一个实现了 Iterator 接口的对象即可以返回一个迭代器。 需要注意的是在调用 iterator.next() 方法之前必须要调用 iterator.hasNext() 方法进行检测若不调用最终会报异常。 如果希望再次遍历则需要重置我们的迭代器即重新调用下 coll.iterator() 方法即可。 // 得到一个集合的迭代器 Iterator iterator coll.iterator(); // 判断是否还有下一个元素 while(iterator.hasNext()){// next() 方法有两个作用下移并且将下移以后集合位置上的元素返回System.out.println(iterator.next()); } 2.3.2 for 循环方式 增强 for 循环可以代替 iterator 迭代器。它就是简化版的 iterator本质是一样的只能用于遍历集合或数组。 for(元素类型 元素名:集合或数组名){// 访问元素 } 三、List 接口和常用方法 3.1 特点 1、List 集合类中元素有序即添加顺序和取出顺序是一致的、且可重复。 2、List 集合中每个元素都有其对应的顺序索引即支持索引。 3、List 容器中的元素都对应一个整数型的序号记录其在容器中的位置可以根据序号存取容器中的元素。 3.2 常用实现类 ArrayList、LinkedList、Vector 3.3 常用方法 public class ListMethod {public static void main(String[] args) {List list new ArrayList();list.add(苹果);list.add(香蕉);// add(int index,Object ele): 在 index 位置插入 ele 元素list.add(1,西瓜);System.out.println(listlist);// addAll(int index,Collection els):从 index 位置开始将 els 中的所有元素添加进来List list2 new ArrayList();list2.add(足球);list2.add(篮球);list.addAll(0,list2);System.out.println(listlist);// Object get(int index):获取指定 index 位置的元素System.out.println(list.get(0));// int indexOf(Object obj):返回 obj 在集合中首次出现的位置System.out.println(list.indexOf(足球));// int lastIndexOf(Object obj):返回 obj 在集合中末次出现的位置System.out.println(list.lastIndexOf(篮球));// Object remove(int index):移除指定 index 位置的元素并返回此元素System.out.println(list.remove(0));// Object set(int index,Object obj):设定指定 index 位置的元素为 obj,相当于是替换list.set(2,美女);System.out.println(listlist);// List subList(int fromIndex,int toIndex):返回从 fromIndex 到 toIndex 位置的子集合左闭右开List list3 list.subList(2,3);System.out.println(list3list3);} } 3.4 排序方法 // 按照 Book 类的 price 属性从小到大排序 public static void sort(List list){int size list.size();for(int i0;isize-1;i){for(int j0;jlist.size()-1-i;j){Book b1 (Book)list.get(j);Book b2 (Book)list.get(j1);if(b1.getPrice() b2.getPrice()){list.set(j,b2);list.set(j1,b1);}}} } 四、ArrayList  4.1 特点 ArrayList 可以添加 null并且可以存储多个。底层是由数组来实现数据存储的ArrayList 基本等同于 Vector但是 ArrayList 是线程不安全的。 ArrayList 中维护了一个 Object 类型的数组 elementData如下 // transient 表示该属性不会被序列化 transient Object [] elementData 4.2 无参扩容分析 当创建 ArrayList 对象时如果使用的是无参的构造器则初始化 elementData 容量为 0第一次添加元素的时候elementData 会扩容为 10如需要再次扩容则扩容 elementData 为 1.5 倍。 public class ArrayListTest {public static void main(String[] args) {// 使用无参构造器创建 ArrayList 对象// 创建一个容量为 0 的 elementData 数组ArrayList list new ArrayList();for(int i1;i10;i){// add() 方法先判断是否需要扩容然后再执行赋值// 如果进行扩容则第一次扩容为10第二次即以后按照 1.5 倍扩容list.add(i);}for(int i11;i15;i) {// 此时要进行第二次扩容为 1010/2 15list.add(i);}// 此时要进行第三次扩容为 1515/222list.add(100);list.add(200);list.add(null);} } 4.3 有参扩容分析 如果使用的是指定大小的构造器则初始 elementData 容量为指定大小如果需要扩容则直接扩容 elementData 为 1.5 倍。 public class ArrayListTest2 {public static void main(String[] args) {// 使用有参构造器创建 ArrayList 对象// 创建一个容量为 8 的 elementData 数组ArrayList list new ArrayList(8);for(int i1;i10;i){// add() 方法先判断是否需要扩容然后再执行赋值// 当 i9 的时候需要进行扩容此时按照 1.5 倍扩容88/2 12list.add(i);}for(int i11;i15;i) {// 当 i13 的时候此时要进行第二次扩容为 1212/2 18list.add(i);}list.add(100);list.add(200);list.add(null);} } 五、Vector 5.1 特点 Vector 底层也是一个对象数组它是线程安全Vector 类的操作方法带有 synchronized 关键字修饰。当涉及到线程安全时可以使用 Vector。 5.2 无参扩容分析 当创建 Vector 对象时如果使用的是无参的构造器则初始化 elementData 容量为 10满了之后扩容为 elementData  2 倍。 public class VectorTest {public static void main(String[] args) {// 使用无参构造器创建 Vector 对象// new Vector() 时会创建一个容量为 10 的 elementData 数组Vector list new Vector();for(int i1;i10;i){// add() 方法先判断是否需要扩容然后再执行赋值list.add(i);}// 此时要进行第二次扩容为 101020list.add(100);} } 5.3 有参扩容分析 如果使用的是指定大小的构造器则初始 elementData 容量为指定大小满了之后扩容为 elementData  2 倍。 public class VectorTest {public static void main(String[] args) {// 使用有参构造器创建 Vector 对象// new Vector() 时会创建一个容量为 7 的 elementData 数组Vector list new Vector(7);for(int i1;i10;i){// add() 方法先判断是否需要扩容然后再执行赋值// 当 i8 的时候需要进行第一次扩容容量为77 14list.add(i);}list.add(100);} } 六、LinkedList 6.1 特点 LinkedList 底层实现了双向链表和双端队列的特点可以添加任意元素包括 null线程不安全没有实现同步。 6.2 底层结构 1、LinkedList 底层维护了一个双向链表。 2、LinkedList 中维护了两个属性 first 和 last 分别指向首节点和尾节点。 3、每个节点Node 对象里面又维护了 prev、next、item 三个属性其中通过 prev 指向前一个通过 next 指向后一个节点。最终实现双向链表。 4、所以 LinkedList 的元素的添加和删除不是通过数组完成的相对来说效率较高。 6.3 LinkedList 和 ArrayList 比较 底层结构增删的效率改查的效率ArrayList可变数组较低数组扩容较高LinkedList双向链表较高通过链表追加较低 如何选择 ArrayList 和 LinkedList :  1、如果我们增删的操作多选择 LinkedList 2、如果我们改查的操作多选择 ArrayList 3、一般来说在程序中80% 到 90% 都是查询因此大部分情况下会选择 ArrayList 4、在一个项目中根据业务灵活选择有可能是一个模块使用的是 ArrayList另外一个模块是 LinkedList。也就是说要根据业务来进行选择
http://www.pierceye.com/news/839349/

相关文章:

  • 做品牌折扣微信推广的网站网站换主机换域名
  • 营销型网站有哪些建设流程怎样制作免费的网站
  • 天津建设工程计价网站手工加工网
  • 温州做美食网站网站建设的方案模板下载
  • 如何快速网站备案以用户为中心 建设学校网站
  • 宣传型网站有哪些宁波建设信息港网站
  • php网站开发是做什么的phpcms v9企业网站模板(简洁利于优化)
  • 什么是网站和网页wordpress启用插件出错
  • asp网站制作工具怎么样做国际网站生意
  • 签订网站建设合同山东建设工程招标网官方网站
  • 迅速建设企业网站外贸网站服务器选择
  • 建设网站详细流程wordpress建站数据库
  • 贵阳建立网站聊城网站建设设计
  • 网站怎么设置关键词百度网址大全首页设为首页
  • 中企动力网站怎么样怎么做公司内网网站
  • 求职网站网页模板一个网站可以做多少个小程序
  • 深圳市住房和建设局网站登录怎样在百度建网站
  • 外国做视频在线观看网站asp简单网站开发
  • 介绍移动互联网的网站有哪些做网站时怎么选择数据库类型
  • 工厂的网站在哪里做的免费建站的软件
  • 中国电子系统建设三公司网站网站建设上如何提高市场竞争力
  • 青海住房和建设厅网站电子商务网站建设与管理教案
  • 免费在线自助建站搬瓦工可以长期做网站
  • 建设外贸网站报价外贸网站制作推广公司
  • 网站开发人员工作内容白沟做网站
  • 产品展示网站模板源码产品宣传
  • 国内wordpress有名的网站河南住房和城乡建设厅网站资质
  • 湛江seo建站wordpress5.1更新
  • 泊头公司做网站做网站价格差异很大
  • 网站开发啊wordpress 图片本地化