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

好网站建设公司哪家好网推所

好网站建设公司哪家好,网推所,品牌网站分析,河北pc端网站建设参考笔记: java 单列集合List 万字详解(通俗易懂)_java singlelist-CSDN博客 目录 前言: 一、概述 二、特点 三、使用集合的经典四部曲 四、List接口常用的方法 五、List接口实现类——ArrayList 六、List接口实现类——Ve…

参考笔记: java 单列集合List 万字详解(通俗易懂)_java singlelist-CSDN博客


目录

前言:

一、概述

二、特点

三、使用集合的经典四部曲

四、List接口常用的方法

五、List接口实现类——ArrayList

六、List接口实现类——Vector

七、List接口实现类——LinkedList


前言:

         集合框架体系图如下:

        List 接口属于单列集合 Collection 接口下的其中一条分支,它最常用的三个实现类分别是——ArrayList、Vector、LinkedList 。这三个实现类各有各的特点,但又有着一些相同的特性。本文将从 List集合的介绍、特点、使用,再到它的三个常用实现类的底层源码分析,完完整整地梳理清楚

一、概述

List 位于 java.util.List ,是单列集合 Collection 接口下的一个子接口。接口不能直接被实例化,因此需要通过创建其子类对象来完成该接口的实例化(即多态)。List 接口最常用的 3  个子类有  ArrayList、Vector、LinkedList 。本文以 ArrayList 类为例演示 List 接口中的常用方法。eg:

        List list = new ArrayList();  (多态的方式保证了编译类型为 List 接口类型,运行类型为 ArrayList


二、特点

  •  List 集合是有序集合,即元素的存储顺序是一致的。 List 集合中的元素可通过索引的形式来访问

 "存储顺序一致" :比如将某个元素添加进集合时,它在索引为 3 的位置,也就是在当前集合中的第 4 个元素。那么,在当前集合无改动的情况下,你想取出该元素就必须从索引为 3 的位置去取,大白话就是:一个元素原来是在哪儿放的,现在就是从哪儿取的

  •  List 集合允许重复,即一个集合中可以有相同的元素

三、使用集合的经典四部曲

① 创建集合对象

② 创建元素对象

③ 将元素对象添加到集合对象中

 遍历集合

四、List接口常用的方法

 public boolean add(E e):将元素 e 添加到集合的末尾

② public void add(int index, E element):将元素添加到该集合索引为 index 的位置

③ public E remove(int index):将集合中索引为 index 的元素删除

④ public boolean remove(Object o):若该集合中存在该元素,则删除第一个指定的元素

⑤ public E get(int index):获取集合中索引为 index 的元素

⑥ public int indexOf(Object o):获取集合中第一个指定元素的索引,若集合中没有该元素,则返回 -1 

⑦ public int size():获取集合中的元素个数

⑧ public boolean contains(Object o):判断集合中是否有指定的元素

⑨ public boolean isEmpty():判断集合是否为空

⑩ public E set(int index, Object element):将集合中索引为 index 的元素修改为 element 

案例演示 

import java.util.ArrayList;
import java.util.List;
/*** 单链集合(Collection)之List集合:*      一.特点*          有序(元素的存取顺序一致), 可重复*      二.注意:*          List是接口,所以可以通过创建其子类ArrayList对象来完成该接口的实例化*          eg : List list = new ArrayList();*      三.List接口中的常用成员方法:*          1.public boolean add(E e)                   将元素 e 添加到集合的末尾*          2.public void add(int index, E element)     将元素 e 添加到该集合索引为 index 的位置*          3.public E remove(int index)                将集合中索引为 index 的元素删除*          4.public boolean remove(Object o)           若该集合中存在该元素,则删除第一个指定的元素*          5.public E get(int index)                   获取集合中索引为 index 的元素*          6.public int indexOf(Object o)              获取集合中第一个指定元素的索引,若集合中没有该元素,则返回-1*          7.public int size()                         获取集合中的元素个数*          8.public boolean contains(Object o)         判断集合中是否有指定的元素*          9.public boolean isEmpty()                  判断集合是否为空*          10.public E set(int index, Object element)  将集合中索引为index的元素修改为element**/
public class demo {public static void main(String[] args) {//1.创建集合对象List list = new ArrayList();/* 测试方法9:isEmpty(),判断此时集合是否为空 */boolean bool1 = list.isEmpty();System.out.println("集合此时为空吗:" + bool1);System.out.println("---------------------------------");//2.创建元素对象Student student1 = new Student("Kyrie", 33);Student student2 = new Student("Five", 22);Student student3 = new Student("Ice", 44);Student student4 = new Student("Cyan", 44);Student student5 = new Student("Cyan", 19);Student student6 = new Student("Cyan", 19);//3.将元素对象添加到集合对象中/* 测试方法1.add(E e)和2.add(int index, E element),对集合添加元素 */boolean b = list.add(student1);     //添加Kyrie到list集合中System.out.println("student1对象成功添加到集合list中了吗?" + b);System.out.println("---------------------------------");/* 对于方法1.add(E e)实际开发中我们都会省略前面的booelan b = ,而是直接调用方法 */list.add(student2);                 //添加Five到list集合中list.add(student3);                 //添加Ice到list集合中list.add(0, student4);        //添加第一个Cyan(44岁)到list集合中list.add(1, student5);        //添加第二个Cyan(19岁)到list集合中list.add(2, student6);        //添加第三个Cyan(19岁)到list集合中/* 测试一下list集合的可重复性 */list.add(10);list.add(10);/*本来student1,student2,student3,分别对应索引0,1,2但我们此处可以调用方法②将student4 ,student5 和 student6分别插入到索引为0,1,2的位置,这样,集合中的结果应该如下:索引 ----->  对应元素0   ----->   Cyan, 441   ----->   Cyan, 192   ----->   Cyan, 193   ----->   Kyrie, 334   ----->   Five, 225   ----->   Ice, 446   ----->   107   ----->   10*///4.遍历集合/* 测试方法5.get(int index), 遍历一下集合 */for (int i = 0; i < list.size(); ++i) {System.out.println("list集合的第" + i + "个元素为:" + list.get(i));}System.out.println("---------------------------------");/* 测试方法6.indexOf(Object o) */int index1 = list.indexOf(student4);System.out.println("student4元素在集合list中的索引为:" + index1);int index2 = list.indexOf(10);System.out.println("10的第一个元素在集合list中的索引为:" + index2);int index3 = list.indexOf(100);System.out.println("如果没有100这个元素,请返回-1" + index3);/* 测试方法7.size() */int length = list.size();System.out.println("添加了六个学生对象元素后,集合目前的长度为" + length);System.out.println("---------------------------------");/* 测试方法8.contains(Object) 和 再次测试方法9.isEmpty() */boolean b2 = list.isEmpty();System.out.println("添加了六个学生对象元素后,集合目前还为空吗?" + b2);System.out.println("---------------------------------");boolean b3_1 = list.contains("Cyan");System.out.println("集合list中有Cyan这个元素吗?" + b3_1);boolean b3_2 = list.contains(student1);System.out.println("集合list中有student1这个元素吗?" + b3_2);boolean b3_3 = list.contains(22);System.out.println("集合list中有22这个元素吗?" + b3_3);System.out.println("---------------------------------");/* 测试方法10.set(int index, Object o) */System.out.println("修改之前,list集合的索引为6的元素是:" + list.get(6));list.set(6, 11);System.out.println("修改之后,list集合的索引为6的元素是:" + list.get(6));System.out.println("修改之前,list集合的索引为5的元素是:" + list.get(5));list.set(5, student1);System.out.println("修改之后,list集合的索引为5的元素是:" + list.get(5));/* 测试方法3.remove(int index) 和 方法4.remove(Object o)*/list.remove(list.size() - 1);list.remove(student1);System.out.println("看看删除最后一个元素和第一个元素后集合成什么样子了:");for (int i = 0; i < list.size(); ++i) {System.out.println(list.get(i));}System.out.println("---------------------------------");}
}class Student {//私有的成员变量public String name;public int age;//公共的空参构造public Student() { }//公共的带参构造public Student(String name, int age) {this.name = name;this.age = age;}//重写toString() 方法,以便于遍历集合时可以打印出学生对象。@Overridepublic String toString() {return "Student{" +"name='" + name + '\'' +", age=" + age +'}';}
}

五、List接口实现类——ArrayList

        链接如下:

【Java集合】ArrayList源码深度分析-CSDN博客https://blog.csdn.net/m0_55908255/article/details/146886585?sharetype=blogdetail&sharerId=146886585&sharerefer=PC&sharesource=m0_55908255&spm=1011.2480.3001.8118        ArrayList主要内容包括:

        ①ArrayList类简介

        ②ArrayLIst类的底层实现

        ③ArrayList类的源码解读

六、List接口实现类——Vector

         链接如下:

【Java集合】Vector源码深度分析-CSDN博客https://blog.csdn.net/m0_55908255/article/details/146949740?sharetype=blogdetail&sharerId=146949740&sharerefer=PC&sharesource=m0_55908255&spm=1011.2480.3001.8118        Vector主要内容包括:

        ①Vector类简介

        ②Vector类的底层实现

        ③Vector类 VS ArrayLIst类

        ④Vector类的源码解读

七、List接口实现类——LinkedList

          链接如下:

【Java集合】Vector源码深度分析-CSDN博客https://blog.csdn.net/m0_55908255/article/details/146949740        LinkedList主要内容包括:

        ①LinkedList类简介

        ②LinkedList类的底层实现

        ③LinkedList类 VS ArrayList类

        ④LinkedList类源码解读


文章转载自:

http://un94Noki.tnkwj.cn
http://xopRboRD.tnkwj.cn
http://QDNt2pGm.tnkwj.cn
http://hGwfxyhG.tnkwj.cn
http://x8seEE1H.tnkwj.cn
http://hO1IILFb.tnkwj.cn
http://kFAPWTgd.tnkwj.cn
http://GoUkTKgm.tnkwj.cn
http://Pz8wdjNN.tnkwj.cn
http://3fzv4NyZ.tnkwj.cn
http://7ofBAaYg.tnkwj.cn
http://qcDKF5YC.tnkwj.cn
http://ljgiyifc.tnkwj.cn
http://8xY2hlOB.tnkwj.cn
http://PuSsf0uI.tnkwj.cn
http://arIZtAkA.tnkwj.cn
http://9AhkkZBH.tnkwj.cn
http://w2BfJ4kP.tnkwj.cn
http://UOxkDGhA.tnkwj.cn
http://EnipCupF.tnkwj.cn
http://qCmSp0lq.tnkwj.cn
http://0f65040k.tnkwj.cn
http://brwCBJMO.tnkwj.cn
http://I5bgEnyv.tnkwj.cn
http://CKrzUIdr.tnkwj.cn
http://K1muybky.tnkwj.cn
http://2O9tzr8A.tnkwj.cn
http://VqxyNQRk.tnkwj.cn
http://KtFUy6Nc.tnkwj.cn
http://zaotbt7l.tnkwj.cn
http://www.dtcms.com/wzjs/627720.html

相关文章:

  • 做网站被骗五千多wordpress多久学会
  • 常州网站建设平台wordpress域名换了打不开
  • asp.net 网站 价格职业培训机构管理系统
  • 网站建设課程网站素材资源
  • 青海网站建设加q5299丶14602做词桂林市区有什么好玩的地方景点
  • 怎么查百度收录网站吗一分钟新闻口播稿
  • 关于江西建设监督网网站迁移长沙网站建设外贸
  • 网站开发售后工作装修公司展厅布置方案
  • 做农产品的网站做业务网站
  • 关于网页制作的网站设计制作小车教学视频
  • 帝国 cms 网站关键字摄影设计说明模板
  • 民宿网站建设企查查企业信息查询手机版下载
  • 鹤壁企业网站建设做电商如何推广
  • 手机网站建设 小程序龙岩特色
  • 广告网站大全亚马逊网网站建设规划报告
  • 常见的英文网站企业电子商务网站开发实训目的
  • 深圳团购网站设计多少钱做网站tt0546
  • 网站建设做什么会计分录网站建设属于无形资产
  • 网站建设的功能和定位广告软文范例大全100
  • 如何快速提高网站关键词排名全程营销网站建设公司
  • 新手怎么做网站推广网易企业邮箱如何申请注册
  • 上海建设部网站淘宝购物网站的建设
  • 企业网站备案备注太原建站公司点击查看
  • 做小型网站的公司大公司的网站是怎么建的
  • 域名买卖网站网页设计公司的产品网站
  • 成都商城类网站设计怎么用PS做网站广告图
  • 徐州建站义乌城市建设规划网站
  • 适合vue做的网站类型jfinal怎么做网站
  • 南宁世尊商贸网站建设谷歌seo培训
  • 模板网站定制网站html导入wordpress