本章目标
掌握List接口与Collection接口的关系
掌握List接口的常用子类:ArrayList、Vector
掌握ArrayList与Vector类的区别
List接口
List是Collection的子接口,里面可以保存各个重复的内容,此接口的定义如下:
——public interface List<E> extends Collection<E>
List接口的扩展方法
List接口的常用子类 —— ArrayList
ArrayList是List子类,可以直接通过对象的多态性,为List接口实例化
此类的定义如下:
——public class ArrayList<E> extends AbstractList<E> implements List<E>, RandomAccess, Cloneable, Serializable
AbstractList类的定义如下:
——public abstract class AbstractList<E> extends AbstractCollection<E> implements List<E>
实例操作一:向集合中增加元素
import java.util.ArrayList; import java.util.Collection; import java.util.List; public class ArrayListDemo01 { public static void main(String[] args) { List<String> allList = null;//定义 List 对象 Collection<String> allCollection = null;//定义 Collection 对象 allList = new ArrayList<String>();//实例化 List 对象,只能是 String 类型 allCollection = new ArrayList<String>();//实例化 Collection 对象,只能是 String 类型 allList.add("Hello");//从 Collection 继承的方法 allList.add(0,"World");//此方法为 List 扩充的方法 System.out.println(allList);//输出集合中的内容 allCollection.add("chaoyi");//增加数据 allCollection.add("阅谁问君诵,水落清香浮。");//增加数据 allList.addAll(allCollection);//从 Collection 继承的方法,增加一组对象 allList.addAll(0,allCollection);//此方法是 List 自定义的,增加一组对象 System.out.println(allList);//输出对象,调用 toString() 方法 } /* 结果: * [World, Hello] * [chaoyi, 阅谁问君诵,水落清香浮。, World, Hello, chaoyi, 阅谁问君诵,水落清香浮。] * */ }
实例操作二:删除元素
import java.util.ArrayList; import java.util.List; public class ArrayListDemo02 { public static void main(String[] args) { List<String> allList = null;//定义 List 对象 allList = new ArrayList<String>();//实例化 List 对象,只能是 String 类型 allList.add("Hello");//增加元素 allList.add(0,"World");//此方法为 List 扩展的增加方法 allList.add("阅谁问君诵,水落清香浮");//增加元素 allList.add("chaoyi");//增加元素 allList.remove(0);//删除指定位置的元素 allList.remove("Hello");//删除指定位置的元素 System.out.println(allList);//输出对象,调用 toString() 方法 } /* 结果: * [阅谁问君诵,水落清香浮, chaoyi] * */ }
实例操作三:输出List中的内容
import java.util.ArrayList; import java.util.List; public class ArrayListDemo03 { public static void main(String[] args) { List<String> allList = null;//定义 List 对象 allList = new ArrayList<String>();//实例化 List 对象,只能是 String 类型 allList.add("Hello");//增加元素 allList.add(0,"World");//增加元素 allList.add("阅谁问君诵,水落清香浮");//增加元素 allList.add("chaoyi");//增加元素 System.out.print("由前向后输出:");//信息输出 for(int i=0; i<allList.size(); i++){//循环输出集合内容 System.out.print(allList.get(i)+"、");//通过下标取得集合中的元素 } System.out.print("\n由后向前输出:"); for(int i=allList.size()-1; i>=0; i --){//循环输出集合内容 System.out.print(allList.get(i)+"、");//通过下标取得集合中的元素 } } /* 结果: * 由前向后输出:World、Hello、阅谁问君诵,水落清香浮、chaoyi、 * 由后向前输出:chaoyi、阅谁问君诵,水落清香浮、Hello、World、 * */ }
实例操作四:将集合变为对象数组
import java.util.ArrayList; import java.util.List; public class ArrayListDemo04 { public static void main(String[] args) { List<String> allList = null;//定义 List 对象 allList = new ArrayList<String>();//实例化 List 对象,只能是 String 类型 allList.add("Hello");//增加元素 allList.add(0,"World");//增加元素 allList.add("阅谁问君诵,水落清香浮");//增加元素 allList.add("chaoyi");//增加元素 String str[] = allList.toArray(new String[]{});//指定的泛型类型 System.out.print("指定数组类型:");//信息输出 for(int i=0; i<str.length; i++){//输出字符串数组中的内容 System.out.print(str[i]+"、");//输出每一个元素 } System.out.print("\n返回数组对象:");//信息输出 Object obj[] = allList.toArray();//直接返回对象数组 for(int i=0; i<obj.length; i++){//循环输出对象数组内容 String temp = (String)obj[i];//第一个对象都是 String 类型实例 System.out.print(temp + "、");//输出每一个元素 } } /* 结果: * 指定数组类型:World、Hello、阅谁问君诵,水落清香浮、chaoyi、 * 返回数组对象:World、Hello、阅谁问君诵,水落清香浮、chaoyi、 * */ }
实例操作五:集合的其他相关操作
import java.util.ArrayList; import java.util.List; public class ArrayListDemo05 { public static void main(String[] args) { List<String> allList = null;//定义 List 对象 allList = new ArrayList<String>();//实例化 List 对象,只能是 String 类型 System.out.println("集合操作前是否为空?"+allList.isEmpty()); allList.add("Hello");//增加元素 allList.add(0,"World");//增加元素 allList.add("阅谁问君诵,水落清香浮");//增加元素 allList.add("chaoyi");//增加元素 System.out.println(allList.contains("Hello")?"\"Hello\" 字符串存在!":"\"Hello\" 字符串不存在!"); //取出里面的部分集合 List<String> allSub = allList.subList(2, 4); System.out.print("集合截取:"); for(int i=0; i<allSub.size(); i++){//截取部分集合 System.out.print(allSub.get(i)+"、"); } System.out.println("\nWorld 字符串的位置:"+allList.indexOf("Hello")); System.out.println("集合操作后是否为空?"+allList.isEmpty()); } /* 结果: * 集合操作前是否为空?true * "Hello" 字符串存在! * 集合截取:阅谁问君诵,水落清香浮、chaoyi、 * World 字符串的位置:1 * 集合操作后是否为空?false * */ }
挽救的子类:Vector
在List接口中还有一个子类:Vector,Vector类属于一个挽救的子类,从整个JAVA的集合发展历史来看,Vector算是一个元老级的类,在JDK 1.0的时候就已经存在类此类。但是到了JAVA 2(JDK 1.2)之后重点强调了集合框架的概念,所以先后定义了很多的新接口(如:List等),但是考虑到一大部分的人已经习惯了使用Vector类,所以JAVA的设计者,就让Vector类多实现了一个List接口,这才将其保留下来。但是因为其是List子类,所以Vector类的使用与之前的并没有太大的区别。
Vector类的定义:
——public class Vector<E> extends AbstractList<E>implements List<E>, RandomAccess, Cloneable, Serializable
Vector子类
import java.util.List; import java.util.Vector; public class VectorDemo01 { public static void main(String[] args) { List<String> allList = null;//定义 List 对象 allList = new Vector<String>();//实例化 List 对象,只能是 String 类型 allList.add("Hello");//增加元素 allList.add(0,"World");//增加元素 allList.add("阅谁问君诵,水落清香浮");//增加元素 allList.add("chaoyi");//增加元素 for(int i=0; i<allList.size(); i++){//循环输出 System.out.print(allList.get(i)+"、");//通过get()取出每一个元素 } } /* 结果: * World、Hello、阅谁问君诵,水落清香浮、chaoyi、 * */ }
使用旧的方法
import java.util.Vector; public class VectorDemo02 { public static void main(String[] args) { Vector<String> allList = new Vector<String>();;//实例化 Vector 对象 allList.add("Hello");//此方法为 Vector 自己定义 allList.add(0,"World");//此方法为 Vector 自己定义 allList.add("阅谁问君诵,水落清香浮");//此方法为 Vector 自己定义 allList.add("chaoyi");//此方法为 Vector 自己定义 for(int i=0; i<allList.size(); i++){//循环输出 System.out.print(allList.get(i)+"、");//通过get()取出每一个元素 } } /* 结果: * World、Hello、阅谁问君诵,水落清香浮、chaoyi、 * */ }
子类的差异:ArrayList与Vector的区别
相关推荐
### List接口和Map接口详解 #### 一、Java集合框架概览 Java集合框架是Java标准库的一个核心组成部分,用于处理各种数据结构如列表、集合和映射等。该框架提供了一组统一的接口和实现,使开发人员能够高效地管理和...
9.javaList 接口及其实现类.zip9.javaList 接口及其实现类.zip9.javaList 接口及其实现类.zip9.javaList 接口及其实现类.zip9.javaList 接口及其实现类.zip9.javaList 接口及其实现类.zip9.javaList 接口及其实现类....
Java集合框架中的List接口是有序集合的一个核心组成部分,允许存储并管理重复的元素。作为Collection接口的子接口,List接口提供了丰富的操作方法,使得我们能够方便地对列表进行各种操作,如添加、删除、查找以及...
集合框架(最终版)-list接口、set接口、Queue接口、Map接口
李兴华关于Java类集_List接口的简易描述课程
Java集合类——List接口 Java中的集合类是用来存放对象的,相当于一个容器,里面包容着一组对象。Java API提供的集合类位于java.util包内。Java中的集合类可以分为两类,一类是数组,另一类是集合。数组也是容器,...
List接口是有序的集合,允许包含重复元素。其主要实现类有LinkedList和ArrayList。 - **LinkedList**:基于链表结构,适用于频繁的插入和删除操作,但随机访问效率较低。 - **ArrayList**:基于动态数组,随机...
集合框架提供了各种数据结构,如List接口,用于存储有序且可能重复的元素序列。List接口是Collection接口的一个子接口,它允许我们在列表中按特定位置插入、获取或移除元素。 List接口提供了多种常用方法来处理列表...
根据给定文件的信息,我们可以提炼出关于Java软件开发中List接口实现类的关键知识点。这部分内容主要聚焦于第11章的“Java集合框架和泛型机制”,特别关注List接口及其几种实现类,包括`ArrayList`、`LinkedList`、`...
对于Java中list接口的有关问题做下的思维导图,便于深化记忆,希望对你有帮助!注意:文件为.mm后缀建议下载freemind打开,免费的思维导图软件!
List接口---马克-to-win java视频的详细的描述与介绍
在Java编程语言中,集合框架是处理对象数组的重要工具,其中`Collection`接口和`List`接口是核心组件。本教程将重点介绍这两个接口以及如何使用它们来实现学生选课系统中的“增、删、改、查”操作。 首先,`...
计算机后端-Java-Java核心基础-第25章 集合02 03. 复习:List接口.avi
计算机后端-Java-Java核心基础-第24章 集合01 13. List接口常用实现类的对比.avi
计算机后端-Java-Java核心基础-第24章 集合01 17. List接口中的常用方法测试.avi
Java中的`java.util.List`接口是集合框架的重要组成部分,它扩展了`Collection`接口,并引入了一些特定于列表的特性,如有序性、可重复性以及对元素的索引访问。这篇博客将深入探讨`List`接口及其常用实现类,如`...
1.欲构造ArrayList类的一个实例,此类继承了List接口,下列哪个方法是正确的 ? A、 ArrayList myList=new Object(); B、 List myList=new ArrayList(); C、 ArrayList myList=new List(); D、 List ...
【标题】"示例listdemo"是一个编程示例,它可能是关于如何在Java或类似的编程语言中使用List接口或者ArrayList类的一个教程。List是Java集合框架的重要组成部分,它提供了有序的元素存储,允许重复项,并支持索引...
list集合接口的用法(视频)
Java编程通过List接口实现数据的增删改查代码示例 Java编程中,List接口是一个非常重要的接口,它提供了对数据的增删改查操作。通过List接口,可以实现对数据的各种操作,例如添加、删除、修改和查询等。在本文中,...