`

JAVA提高教程(6)-认识List列表

    博客分类:
  • Java
阅读更多

列表是很常用的数据结构,感觉比Map和Set用的频率要高一些吧,因为我经常用其返回数据库的操作结果集

 

import java.util.ArrayList;
import java.util.Iterator;
import java.util.LinkedList;
import java.util.List;
import java.util.ListIterator;
import java.util.Stack;
import java.util.Vector;
  
/**
* 老紫竹JAVA提高教程(6)-认识List列表<br>
* List可以精确控制在集合里面的先后顺序。<br>
* 可以直接通过数据的位置访问数据。<br>
* 一般允许重复数据<br>
* 一般允许null,且允许多个null
* 
* @author 老紫竹 JAVA世纪网(java2000.net)
* 
*/
public class Lession6 {
  
 public static void main(String[] args) {
  // 下面是List里面常用的实现类
  
  // 大小可变列表的实现,允许任何数据加入
  ArrayList arrayList = new ArrayList();
  
  // 同样是大小可变列表的实现.
  // 与ArrayList的最大区别就是这个类的方法是同步(synchronized)的
  // 详细的区别,请参考
  // 看源代码理解ArrayList和Vector 的真正区别
  // http://www.java2000.net/p9750
  Vector vector = new Vector();
  
  // 实现了双向队列的控制,包括头尾的操作
  // 可用于堆栈和FIFO操作等
  LinkedList linkedList = new LinkedList();
  
  // 集成自 Vector
  // 提供了LIFO的堆栈操作方式
  Stack stack = new Stack();
  
  // -----------------
  // 下面以ArrayList作为例子,看看列表的各个方法
  List list = new ArrayList();
  // 构建第二个列表
  List list2 = new ArrayList();
  
  // 向列表的尾部添加指定的数据
  list.add(123);
  
  // 在列表的指定位置插入指定数据
  // 我们在最前面插入数据
  // 列表的位置索引从0开始
  list.add(0, 456);
  
  // 将list2里面的数据,全部放到list1的尾部去
  // 注意此处可以是任何集合类,不限于列表
  list.addAll(list2);
  
  // 将list2里面的数据,全部放到list1指定位置的后面
  // 等于插入一段数据
  list.addAll(2, list2);
  
  // 清空列表,删除里面所有的数据
  list.clear();
  
  // 判断列表里是否包含某个数据
  boolean found = list.contains(123);
  
  // 判断列表是否包含了另一个集合的所有数据
  // 注意此处可以是任何集合类,不限于列表
  boolean ok = list.containsAll(list2);
  
  // 获得指定位置的数据
  // 如果位置超过了列表的范围 0 到 list.size()-1
  // 则抛出异常:IndexOutOfBoundsException
  Object obj = list.get(3);
  
  // 得到数据在列表中的位置
  // 如果没找到,返回-1
  // 位置索引从0开始
  int index = list.indexOf(456);
  
  // 判断列表是不是空的
  boolean empty = list.isEmpty();
  
  // 列表的迭代器操作
  // 顺序严格按照列表的保存的顺序
  Iterator it = list.iterator();
  
  // 得到数据在列表最后一次出现的位置
  // 适合于有重复数据的列表
  index = list.lastIndexOf(456);
  
  // 列表的另一个迭代器
  ListIterator listIT = list.listIterator();
  
  // 列表的另一个迭代器,可以指定起始位置
  ListIterator listIT2 = list.listIterator(3);
  
  // 删除某个位置的数据
  list.remove(3);
  
  // 删除指定对象的第一个出现的位置
  // 注意,如果是整数,要区分其与remove(int)的区别
  // 建议用 remove(new Integer(123)); 来删除数据对象
  list.remove(new Integer(123));
  
  // 删除列表里在另一个集合里存在的数据
  list.removeAll(list2);
  
  // 只保留在另一个集合里存在的数据,等于交集
  list.retainAll(list2);
  
  // 替换指定位置的数据
  list.set(3, 999);
  
  // 列表数据的数量
  int size = list.size();
  
  // 得到一个子数组
  List subList = list.subList(2, 10);
  
  // 将集合转化为数组
  Object[] objs = list.toArray();
  
  // 将集合转化为指定格式的数组
  // 比如集合里保存的都是String
  String[] objs2 = (String[]) list.toArray(new String[0]);
 }
}

 

分享到:
评论

相关推荐

    Java程序设计教程-习题答案.rar

    通过本“Java程序设计教程-习题答案”提供的解答,学习者可以检查自己的理解,找到自己在学习过程中的盲点,并通过解答中的解释加深对各个概念的认识。这将有助于他们巩固理论知识,提升实践能力,为未来在Java开发...

    Java基础教程.md.pdf

    ### Java基础教程知识点详解 #### 1. Java简介 ##### 1.1 认识Java - **诞生时间**:1995年5月23日,Java语言由Sun Microsystems公司推出。 - **创始人**:James Gosling,通常被称为“Java之父”。 ##### 1.2 ...

    JAVA技术教程基础

    **JAVA技术教程基础** 在Java编程领域,基础知识是...通过这个"JAVA技术教程基础",初学者可以逐步建立起对Java编程的系统认识,并具备编写简单Java程序的能力。不断实践和深入学习,才能真正掌握这门强大的编程语言。

    JAVA SE 教程(2)

    - **接口与实现**:认识Collection、List、Set和Map接口,以及ArrayList、LinkedList、HashSet、HashMap等实现类。 5. **IO流** - **文件操作**:掌握如何读写文件,使用File类进行文件和目录的操作。 - **字节...

    java经典入门教程

    1. **Java基础知识**:首先,教程会讲解Java的历史和应用领域,让学习者对Java有一个宏观的认识。接着,将介绍Java开发环境的搭建,包括JDK的安装、Java Development Kit(JDK)中的关键工具,如javac编译器和Java...

    Java程序设计实践教程.rar

    《Java程序设计实践教程》是一本专为初学者设计的教材,旨在全面介绍Java编程语言的基本概念、核心语法以及软件工程中的应用。本教程通过一系列的章节深入浅出地讲解了Java的魅力,让学习者能够从整体上把握这门语言...

    Java技术教程(基础篇)

    Java技术教程(基础篇)是面向初学者和有一定编程基础的学习者设计的全面指南,旨在帮助读者掌握Java语言的核心概念和技术。Java作为一种广泛使用的高级编程语言,其强大的功能、跨平台特性和丰富的类库使其成为开发...

    张孝祥java就业培训教程

    1. **Java基础知识**:教程首先会从Java语言的基础语法开始,包括变量、数据类型、运算符、流程控制语句(如if-else、switch、for、while)、数组等,让初学者对Java有一个全面的认识。 2. **面向对象编程**:Java...

    java就业培训教程

    根据提供的文件信息,我们可以从以下几个方面来探讨与“java就业培训教程”相关的知识点: ### Java基础知识 1. **Java语言简介**:Java是一种广泛使用的、面向对象的编程语言,由Sun Microsystems开发并于1995年...

    java一看就懂的老师教程

    ### Java一看就懂的老师教程知识点总结 #### 一、Java简介与安装配置 - **1.1 Java的定义** - Java是一种广泛使用的高级编程语言。 - **1.2 Java的特点** - Java具有简单性、面向对象、平台独立等特性。 - **1.3 ...

    Java 实例 - Varargs 可变参数使用源代码-详细教程.zip

    Java中的可变参数(Varargs)是自Java 5引入的一项特性,它允许函数接受一个或多个同类型的参数。...通过上述讲解,你应该对Java的可变参数有了全面的认识,包括其工作原理、使用限制以及如何在实际项目中运用。

    Java程序设计初级教程PPT

    通过这13个PPT的学习,初学者能够建立起对Java编程的基本认识,并逐步掌握编程技巧,为后续深入学习Java打下坚实的基础。这个教程覆盖了Java入门所需的核心概念和实践技能,非常适合自学或课堂教学使用。

    JAVA Programe.rar_Java2

    "JAVA Programe.rar_Java2"这个压缩包文件很可能包含了一系列与Java 2(也称为Java SE 1.2)相关的源代码示例,这些示例可能来自于《java2参考大全》这本书或者其他权威教程。书中的例子通常是用来帮助读者理解和...

    Java语言程序设计(第10版)梁勇 书本示例代码

    《Java语言程序设计(第10版)》是梁勇教授编著的一本深入浅出的Java教程,旨在帮助初学者和进阶者理解并掌握Java编程的核心概念与技术。此书的第10版更是经过了多次迭代和优化,充分反映了Java语言的最新发展和最佳...

    JAVA程序设计100例

    《JAVA程序设计100例》是一份涵盖了Java编程实践的综合教程,旨在通过实例帮助学习者深入理解和掌握Java编程语言。在这个压缩包中,包含了100个不同的Java程序设计示例,覆盖了从基础语法到高级特性的广泛主题。下面...

    头歌Java程序设计答案.txt

    LeetCode和HackerRank等在线编程挑战网站则提供了大量的Java练习题,有助于提高编程能力和问题解决能力。 实践案例部分,通过编写简单的程序如“Hello,World!”,可以加深对Java编程的认识。实现一个计算器项目可以...

    1java初学者学习源代码.zip

    这个压缩包中的“21天精通Java源代码”很可能是按照21天的学习计划编排的一系列教程或实例,涵盖了从基础到进阶的各个阶段。 Java是一种广泛使用的面向对象的编程语言,由Sun Microsystems(现已被Oracle公司收购)...

    Java 2编程21天自学通(2)

    在“Java 2编程21天自学通”...通过这个21天的自学教程,你将逐步建立起对Java编程的全面认识,为实际项目开发打下牢固的基础。记得理论结合实践,不断编写代码,以加深理解和提高技能。祝你在Java学习之旅中收获满满!

    java学习笔记

    Java学习笔记是一个面向初学者的基础教程,旨在帮助新接触编程或Java语言的开发者掌握核心概念和技术。这本书可能包含了从安装Java开发环境到编写第一个“Hello, World!”程序的所有步骤,逐步引导读者进入这个广泛...

Global site tag (gtag.js) - Google Analytics