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

泉州网站建设哪家好微信小程序低代码开发平台

泉州网站建设哪家好,微信小程序低代码开发平台,阿里云网站建设教学视频教程,卓成建设集团有限公司网站1.集合 可以动态保存任意多个对象,并提供了一系列的操作对象的方法:add、remove、set、get等。 2.集合框架体系 分为两大类: 单列集合和双列集合 3.List接口基本介绍 List接口是Collection接口的子接口 List集合类中元素有序&#xff0…

1.集合

可以动态保存任意多个对象,并提供了一系列的操作对象的方法:add、remove、set、get等。

2.集合框架体系

分为两大类:

单列集合和双列集合

3.List接口基本介绍

List接口是Collection接口的子接口

List集合类中元素有序可重复支持索引,List容器中的元素都对应一个整数型的序号,可以根据序号存取容器中的元素。

List 集合里添加了一些根据索引来操作集合元素的方法

1) void add(int index,Obiect ele):在index位置插入ele元素

2)boolean addAll(int index, Collection eles):从index位置开始将eles中的所有元素添加进来

3)Object get(int index):获取指定index位置的元素

4)int indexof(Obiect obi):返回obi在集合中首次出现的位置

5)int lastlndexof(Obiect obi):返回obi在当前集合中未次出现的位置

6)Object remove(int index):移除指定index位置的元素,并返回此元素

7)Object set(int index, Object ele):设置指定index位置的元素为ele相当于是替换

8)List subList(int fromIndex, int tolndex):返回从fromIndex到tolndex位置的子集合

例子

	    List list=new ArrayList();//插入list.add(100);list.add(3);list.add("a");System.out.println(list);//删除list.remove(1);//默认按索引删除,索引从0开始list.remove(new Integer(100));//按指定元素删除,需要传入对象才行System.out.println(list);//修改list.set(0,"aaa");System.out.println(list);

List的三种遍历方式

方式一:使用iterator

        Iterator iter=list.iterator();while(iter.hasNext()) {Object o=iter.next();System.out.println(o);}

方式二:使用增强for

         for(Object o:list) {System.out.println(o);}

方式三:使用普通for

         for(int i=0;i<list.size();i++) {Object o=list.get(i);System.out.println(o);}

4.ArrayList底层结构和源码分析

基本介绍:

1)ArrayList可以加入多个null

2)ArrayList是由数组实现数据存储的

3)ArrayList是线程不安全的,原因看源码没有synchronized

ArrayList底层操作机制源码分析

1)ArrayList中维护了一个Object类型的数组elementData。

transient Object[] elementData; //transient 表示瞬间,短暂的,表示该属性不会被序列号

2)当创建ArrayList对象时,如果使用的是无参构造器,则初始elementData容量为0,第1次添加,则扩容elementData为10,如需要再次扩容,则扩容elementData为1.5倍。
3)如果使用的是指定大小的构造器,则初始elementData容量为指定大小,如果需要扩容则直接扩容elementData为1.5倍。

5.Vector底层结构和源码解剖

基本介绍:

1) Vector底层也是一个对象数组,protected Objectl] elementData;

2) Vector 是线程同步的,即线程安全,Vector类的操作方法带有synchronized

//1. new Vector() 底层
/*
public Vector() {
this(10);
}
补充:如果是 Vector vector = new Vector(8);
走的方法:
public Vector(int initialCapacity) {
this(initialCapacity, 0);
}
2. vector.add(i)
2.1 //下面这个方法就添加数据到 vector 集合
public synchronized boolean add(E e) {
modCount++;
ensureCapacityHelper(elementCount + 1);
elementData[elementCount++] = e;
return true;
}
2.2 //确定是否需要扩容 条件 : minCapacity - elementData.length>0
private void ensureCapacityHelper(int minCapacity) {
// overflow-conscious code
if (minCapacity - elementData.length > 0)
grow(minCapacity);
}
2.3 //如果 需要的数组大小 不够用,就扩容 , 扩容的算法
//newCapacity = oldCapacity + ((capacityIncrement > 0) ?
//
capacityIncrement : oldCapacity);
//就是扩容两倍.
private void grow(int minCapacity) {
// overflow-conscious code
int oldCapacity = elementData.length;
int newCapacity = oldCapacity + ((capacityIncrement > 0) ?
capacityIncrement : oldCapacity);
if (newCapacity - minCapacity < 0)
newCapacity = minCapacity;
if (newCapacity - MAX_ARRAY_SIZE > 0)
newCapacity = hugeCapacity(minCapacity);
elementData = Arrays.copyOf(elementData, newCapacity);
}

6.LinkedList底层结构

LinkedList的全面说明
1)LinkedList底层实现了双向链表和双端队列特点

2)可以添加任意元素(元素可以重复),包括null

3)线程不安全,没有实现同步

 LinkedList的底层操作机制
1)LinkedList底层维护了一个双向链表

2) LinkedList中维护了两个属性first和last分别指向 首节点和尾节点

3)每个节点 (Node对象) ,里面又维护了prev、next、item三个属性,其中通过prev指向前一个,通过next指向后一个节点。最终实现双向链表

4)所以LinkedList的元素的添加和删除,不是通过数组完成的,相对来说效率较高

5)模拟一个简单的双向链表

/* 1. LinkedList linkedList = new LinkedList();
public LinkedList() {}
2. 这时 linkeList 的属性 first = null last = null
3. 执行 添加
public boolean add(E e) {
linkLast(e);
return true;
}
4.将新的结点,加入到双向链表的最后
void linkLast(E e) {
final Node<E> l = last;
final Node<E> newNode = new Node<>(l, e, null);
last = newNode;
if (l == null)
first = newNode;
else
l.next = newNode;
size++;
modCount++;
}
*/
/* linkedList.remove(); // 这里默认删除的是第一个结点
1. 执行 removeFirst
public E remove() {
return removeFirst();
}
2. 执行
public E removeFirst() {
final Node<E> f = first;
if (f == null)
throw new NoSuchElementException();
return unlinkFirst(f);
}
3. 执行 unlinkFirst, 将 f 指向的双向链表的第一个结点拿掉
private E unlinkFirst(Node<E> f) {
// assert f == first && f != null;
final E element = f.item;
final Node<E> next = f.next;
f.item = null;
f.next = null; // help GC
first = next;
if (next == null)
last = null;
else
next.prev = null;
size--;
modCount++;
return element;
}
*/


文章转载自:

http://IgBZ4WjN.wyzby.cn
http://Vk98BdRm.wyzby.cn
http://IZmR4Zn6.wyzby.cn
http://bf8njzFo.wyzby.cn
http://iSINez06.wyzby.cn
http://rq2oVVUS.wyzby.cn
http://hPfTm9hm.wyzby.cn
http://Y1R7WZ0N.wyzby.cn
http://vq2vsrws.wyzby.cn
http://TCGRVVoI.wyzby.cn
http://PWtaw2Sr.wyzby.cn
http://oPNuOf8a.wyzby.cn
http://aqDTFu1a.wyzby.cn
http://tKHzxFEt.wyzby.cn
http://5pqteOE4.wyzby.cn
http://CfrL2yVU.wyzby.cn
http://EI0119Wf.wyzby.cn
http://a39BJJLH.wyzby.cn
http://2HuJUBnC.wyzby.cn
http://1sVbz2t5.wyzby.cn
http://o2H8eS2Y.wyzby.cn
http://GvTk7HtA.wyzby.cn
http://ASBeNR1j.wyzby.cn
http://8iZF2lzg.wyzby.cn
http://v57ufPvy.wyzby.cn
http://7vm4tFFY.wyzby.cn
http://BCHDyG5t.wyzby.cn
http://G8rUoAZq.wyzby.cn
http://QJ82t7x0.wyzby.cn
http://3CAteI5B.wyzby.cn
http://www.dtcms.com/wzjs/731956.html

相关文章:

  • 汽贸做网站有用处吗网站建设如何财务处理
  • 无锡自助建网站微商分销如何搭建分销模式
  • 查看邮箱注册过的网站系统总裁
  • 公众号开发合同泉州网络seo
  • 优秀排版设计图片seowhy什么意思
  • 有没有给宝宝做辅食的网站最热门的网络游戏排行
  • 泉州市住房和城乡建设部网站网站搜索排名优化价格
  • 如何做响应式的网站如何构建一个成交型网站
  • 南京市公共建设中心网站建设一个公司网站需要多少钱
  • 微信上做网站怎么做成都建设规划局网站
  • 公司网站建设费用科目网店培训班
  • 手机模板网站制作网络黄页进入有限公司
  • 建网站外包网站用什么开发
  • 网站备案咨询招商平台
  • 做一套vi设计要多少钱昆明seo培训
  • 专业建站网站服务wordpress前台注册登入
  • 深圳网站建设外包公司哪家好蜗牛家装网
  • seo站长工具如何创办一家自己的公司
  • 做电商网站的感想cydia软件源网站开发
  • cdr做网站怎么导出pc网站设计哪家公司好
  • 河北邢台做wap网站门窗营销型网站
  • 网站建设解决问题现在学seo课程多少钱
  • 网站制作方案答案是螃蟹的迷语 百度一下
  • 外贸营销型网站建设公司东莞找工作在什么平台找合适
  • 网站推广活动策划美工常用找素材网站
  • 哪个企业的网站做的比较好frontpage做网站教程
  • 京东联盟需要自己做网站吗精美合同网站建设
  • 佛山免费建站公司常用来做网站的首页
  • 楚雄网站建设公司江苏泰州网站建设
  • 聊城建网站服务网站服务器排行榜