写在前面的话:读书破万卷,编码如有神

--------------------------------------------------------------------

下文主要对java.util.LinkedList的4个查询操作进行介绍,主要内容包括:

1、LinkedList常用4个查询操作介绍

参考内容:

1、JDK源码(1.7)

--------------------------------------------------------------------

1、LinkedList常用4个查询操作介绍

(1) int indexOf(Object o)

功能: 查询元素o在此双端队列中的位置(如果不存在则返回-1)

示例代码:

1 importjava.util.LinkedList;2

3 public classLinkedListDemo {4 public static voidmain(String[] args) {5 /*********测试LinkedList的'int indexOf(Object o)'方法的使用**********/

6

7 //创建一个LinkedList对象

8 LinkedList linkedList = new LinkedList();9

10 //创建一个Student对象,并将其添加到LinkedList对象中

11 Student stu1 = new Student(1,"zhangsan",20);12 linkedList.add(stu1);13

14 //创建一个Student对象,并将其添加到LinkedList对象中

15 Student stu2 = new Student(2,"lisi",21);16 linkedList.add(stu2);17

18 //创建一个Student对象,并将其添加到LinkedList对象中

19 Student stu3 = new Student(3,"wangwu",22);20 linkedList.add(stu3);21 System.out.println("linkedList:" +linkedList);22

23 System.out.println("linkedList.indexOf(stu2):" +linkedList.indexOf(stu2));24

25 Student stu4 = new Student(4,"erha",22);26 System.out.println("linkedList.indexOf(stu4):" +linkedList.indexOf(stu4));27 }28 }29

30 运行结果:31 linkedList:[Student [stuId=1, stuName=zhangsan, stuAge=20], Student [stuId=2, stuName=lisi, stuAge=21], Student [stuId=3, stuName=wangwu, stuAge=22]]32 linkedList.indexOf(stu2):1

33 linkedList.indexOf(stu4):-1

源代码如下:

1 /*

2 查询元素o在此双端队列中的位置(如果不存在,则返回-1)3 */

4 public intindexOf(Object o) {5 int index = 0;6 if (o == null) {7 //当元素o为null时8 //循环遍历此双端队列中的每个元素,查找是否有元素为null

9 for (Node x = first; x != null; x =x.next) {10 if (x.item == null)11 returnindex;12 index++;13 }14 } else{15 //当元素o不为null时16 //循环遍历此双端队列中的每个元素,查找是否有元素的值等于o

17 for (Node x = first; x != null; x =x.next) {18 if(o.equals(x.item))19 returnindex;20 index++;21 }22 }23 return -1;24 }

(2) int lastIndexOf(Object o)

功能: 查询元素o在此双端队列中最后一次出现的位置(如果不存在则返回-1)

示例代码:

1 importjava.util.LinkedList;2

3 public classLinkedListDemo {4 public static voidmain(String[] args) {5 /*********测试LinkedList的'int lastIndexOf(Object o)'方法的使用**********/

6

7 //创建一个LinkedList对象

8 LinkedList linkedList = new LinkedList();9

10 //创建一个Student对象,并将其添加到LinkedList对象中

11 Student stu1 = new Student(1,"zhangsan",20);12 linkedList.add(stu1);13

14 //创建一个Student对象,并将其添加到LinkedList对象中

15 Student stu2 = new Student(2,"lisi",21);16 linkedList.add(stu2);17

18 //创建一个Student对象,并将其添加到LinkedList对象中

19 Student stu3 = new Student(3,"wangwu",22);20 linkedList.add(stu3);21 linkedList.add(stu2);22 linkedList.add(stu3);23 System.out.println("linkedList:" +linkedList);24

25 System.out.println("linkedList.lastIndexOf(stu2):" +linkedList.lastIndexOf(stu2));26

27 Student stu4 = new Student(4,"erha",22);28 System.out.println("linkedList.lastIndexOf(stu4):" +linkedList.lastIndexOf(stu4));29 }30 }31

32 运行结果:33 linkedList:[Student [stuId=1, stuName=zhangsan, stuAge=20], Student [stuId=2, stuName=lisi, stuAge=21], Student [stuId=3, stuName=wangwu, stuAge=22], Student [stuId=2, stuName=lisi, stuAge=21], Student [stuId=3, stuName=wangwu, stuAge=22]]34 linkedList.lastIndexOf(stu2):3

35 linkedList.lastIndexOf(stu4):-1

源代码如下:

1 /*

2 查询元素o在此双端队列中最后一次出现的位置(如果不存在,则返回-1)3 */

4 public intlastIndexOf(Object o) {5 int index =size;6 if (o == null) {7 //当元素o为null时8 //循环逆序遍历双端队列中每个节点元素,查询节点元素值为null的节点

9 for (Node x = last; x != null; x =x.prev) {10 index--;11 if (x.item == null)12 returnindex;13 }14 } else{15 //当元素o为null时16 //循环逆序遍历双端队列中每个节点元素,查询节点元素值等于元素o的节点

17 for (Node x = last; x != null; x =x.prev) {18 index--;19 if(o.equals(x.item))20 returnindex;21 }22 }23 return -1;24 }

(3) boolean contains(Object o)

功能: 查询此双端队列中是否有元素o

示例代码:

1 importjava.util.LinkedList;2

3 public classLinkedListDemo {4 public static voidmain(String[] args) {5 /*********测试LinkedList的'boolean contains(Object o)'方法的使用**********/

6

7 //创建一个LinkedList对象

8 LinkedList linkedList = new LinkedList();9

10 //创建一个Student对象,并将其添加到LinkedList对象中

11 Student stu1 = new Student(1,"zhangsan",20);12 linkedList.add(stu1);13

14 //创建一个Student对象,并将其添加到LinkedList对象中

15 Student stu2 = new Student(2,"lisi",21);16 linkedList.add(stu2);17

18 //创建一个Student对象,并将其添加到LinkedList对象中

19 Student stu3 = new Student(3,"wangwu",22);20 linkedList.add(stu3);21 linkedList.add(stu2);22 linkedList.add(stu3);23 System.out.println("linkedList:" +linkedList);24

25 System.out.println("linkedList.contains(stu2):" +linkedList.contains(stu2));26

27 Student stu4 = new Student(4,"erha",22);28 System.out.println("linkedList.contains(stu4):" +linkedList.contains(stu4));29 }30 }31

32 运行结果:33 linkedList:[Student [stuId=1, stuName=zhangsan, stuAge=20], Student [stuId=2, stuName=lisi, stuAge=21], Student [stuId=3, stuName=wangwu, stuAge=22], Student [stuId=2, stuName=lisi, stuAge=21], Student [stuId=3, stuName=wangwu, stuAge=22]]34 linkedList.contains(stu2):true

35 linkedList.contains(stu4):false

源代码如下:

1 public booleancontains(Object o) {2 //调用indexOf方法返回元素o在此双端队列中的位置

3 return indexOf(o) != -1;4 }

(4) int size()

功能: 返回此双端队列中元素的个数

示例代码:

1 importjava.util.LinkedList;2

3 public classLinkedListDemo {4 public static voidmain(String[] args) {5 /*********测试LinkedList的'int size()'方法的使用**********/

6

7 //创建一个LinkedList对象

8 LinkedList linkedList = new LinkedList();9

10 //创建一个Student对象,并将其添加到LinkedList对象中

11 Student stu1 = new Student(1,"zhangsan",20);12 linkedList.add(stu1);13

14 //创建一个Student对象,并将其添加到LinkedList对象中

15 Student stu2 = new Student(2,"lisi",21);16 linkedList.add(stu2);17

18 //创建一个Student对象,并将其添加到LinkedList对象中

19 Student stu3 = new Student(3,"wangwu",22);20 linkedList.add(stu3);21 linkedList.add(stu2);22 linkedList.add(stu3);23 System.out.println("linkedList:" +linkedList);24

25 System.out.println("linkedList.size():" +linkedList.size());26 }27 }28

29 运行结果:30 linkedList:[Student [stuId=1, stuName=zhangsan, stuAge=20], Student [stuId=2, stuName=lisi, stuAge=21], Student [stuId=3, stuName=wangwu, stuAge=22], Student [stuId=2, stuName=lisi, stuAge=21], Student [stuId=3, stuName=wangwu, stuAge=22]]31 linkedList.size():5

源代码如下:

1 public intsize() {2 //返回属性size

3 returnsize;4 }

--------------------------------------------------------------------

java.util.LinkedList系列文章

--------------------------------------------------------------------

相关知识

1e-5 java_内功心法 -- java.util.LinkedListE (5)相关推荐

  1. localBlock在java_将java.util.Date转换为java.time.LocalDate

    小编典典 Date input = new Date(); LocalDate date = input.toInstant().atZone(ZoneId.systemDefault()).toLo ...

  2. java liste_内功心法 -- java.util.ArrayListE (1)

    写在前面的话:读书破万卷,编码如有神 -------------------------------------------------------------------- 下文主要对java.ut ...

  3. java.util.Collections.synchronizedSet()方法的使用

    下面的例子显示java.util.Collections.synchronizedSet()方法的使用 package com.;import java.util.*;public class Col ...

  4. java.util.concurrent包API学习笔记

    newFixedThreadPool 创建一个固定大小的线程池. shutdown():用于关闭启动线程,如果不调用该语句,jvm不会关闭. awaitTermination():用于等待子线程结束, ...

  5. 解决Apache CXF 不支持传递java.sql.Timestamp和java.util.HashMap类型问题

    在项目中使用Apache开源的Services Framework CXF来发布WebService,CXF能够很简洁与Spring Framework 集成在一起,在发布WebService的过程中 ...

  6. zipfile java 解压速率,使用java.util.ZipFile在同一层次中解压缩zipfile

    given a zip file with multiple nested directory structure, how do I unzip it into the same tree stru ...

  7. Date类(java.util)和SimpleDateFormat类(java.text)

    在程序开发中,经常需要处理日期和时间的相关数据,此时我们可以使用 java.util 包中的 Date 类.这个类最主要的作用就是获取当前时间,我们来看下 Date 类的使用: 使用 Date 类的默 ...

  8. 【ArrayList】为什么java.util.concurrent 包里没有并发的ArrayList实现?

    2019独角兽企业重金招聘Python工程师标准>>> 为什么java.util.concurrent 包里没有并发的ArrayList实现? 问:JDK 5在java.util.c ...

  9. 翻译:java.util.regex.Pattern

    java.util.regex.Pattern A compiled representation of a regular expression. A regular expression(正则表达 ...

最新文章

  1. c# ThreadPool 判断子线程全部执行完毕的四种方法
  2. 排班系统c语言设计说明,帮我设计一个关于员工排班的C语言程序
  3. 算法学习:常用排序方法
  4. 墨迹天气接口html,moji_weather_spider.py
  5. LibreOJ #2006. 「SCOI2015」小凸玩矩阵 二分答案+二分匹配
  6. 一种实现(无须root)手机截屏方案
  7. ‘vagrant up’ fails to mount linked directory /vagrant
  8. 按钮的android程序闪退,Android实例化控件有什么特殊要求吗??怎么程序加了这一段之后就闪退。。...
  9. java 对象重写tostring
  10. win10(UEFI)和Ubuntu双系统安装,无法进入ubuntu。
  11. kindeditor编辑器 编辑器textarea不能获取到内容的解决办法
  12. .net对象和比特流的转换(一)
  13. JSK-27321 统计单词数【字符串】
  14. matlab连续投影算法SPA使用示例
  15. JavaScript数组实现图片轮播
  16. iptables 防护基本 DDoS 配置
  17. 设计配色灵感|热情甜蜜色系配色方案
  18. PDF文件转化成mobi格式,亲测kindle或者iReader可用!
  19. cass等距离等分线段的命令键_CAD定距等分与定数等分使用技巧 - CAD自学网
  20. cpu倍频模式怎么调_BIOS:增加倍频比率调整选项

热门文章

  1. Python科学库sklearn.numpy.scipy. matplotlib.pandas
  2. android5.1蓝牙反向控制(Avrcp协议)流程
  3. VFS之基本数据结构
  4. Android5.1权限问题解决
  5. yv12转nv12,nv12转I420
  6. SpringBoot之接收url参数
  7. SpringBoot之maven包管理
  8. tensorflow之random_normal
  9. 人脸方向学习(二):人脸质量评价-质量判断总结
  10. world办公软件小技巧