Java类集框架——List接口
学习目标
List接口的扩展方法
List接口的常用子类——ArrayList
- import java.util.ArrayList ;
- import java.util.List ;
- import java.util.Collection ;
- public class ArrayListDemo01{
- public static void main(String args[]){
- List<String> allList = null ;
- allList = new ArrayList<String>() ; // 指定操作的泛型为String
- allList.add("Hello") ; // 此方法由Collection接口而来
- allList.add("World") ; // 默认情况下是向后加入
- System.out.println(allList) ;
- }
- };
- import java.util.ArrayList ;
- import java.util.List ;
- import java.util.Collection ;
- public class ArrayListDemo01{
- public static void main(String args[]){
- List<String> allList = null ;
- Collection<String> allCollection = null ;
- allList = new ArrayList<String>() ; // 指定操作的泛型为String
- allCollection = new ArrayList<String>() ; // 指定一个集合
- allList.add("Hello") ; // 此方法由Collection接口而来
- allList.add(0,"World") ; // 在第一个位置上添加新的内容
- System.out.println(allList) ;
- allCollection.add("LIUXUN") ; // 向Collection中加入内容
- allCollection.add("1993") ;
- allList.addAll(allCollection) ;
- System.out.println(allList) ;
- }
- };
注意:在指定的位置增加一个元素并不会替换原来的元素 而是后移。
- import java.util.ArrayList ;
- import java.util.List ;
- import java.util.Collection ;
- public class ArrayListDemo01{
- public static void main(String args[]){
- List<String> allList = null ;
- Collection<String> allCollection = null ;
- allList = new ArrayList<String>() ; // 指定操作的泛型为String
- allCollection = new ArrayList<String>() ; // 指定一个集合
- allList.add("Hello") ; // 此方法由Collection接口而来
- allList.add(0,"World") ; // 在第一个位置上添加新的内容
- System.out.println(allList) ;
- allCollection.add("LIUXUN") ; // 向Collection中加入内容
- allCollection.add("1993") ;
- allList.addAll(allCollection) ;
- allList.addAll(0,allCollection) ;
- System.out.println(allList) ;
- }
- };
- import java.util.ArrayList ;
- import java.util.List ;
- public class ArrayListDemo02{
- public static void main(String args[]){
- List<String> allList = null ;
- allList = new ArrayList<String>() ; // 指定操作的泛型为String
- allList.add("Hello") ; // 此方法由Collection接口而来
- allList.add(0,"World") ; // 在第一个位置上添加新的内容
- allList.add("liuxun") ; // 向Collection中加入内容
- allList.add("1993") ;
- allList.remove(0) ; // 删除第一个元素,指定删除的位置
- allList.remove("Hello") ; // 此方法由Collection接口继承而来
- System.out.println(allList) ;
- }
- };
集合中的内容可以添加,可以删除,那么实际上最重要的就是输出。
- import java.util.ArrayList ;
- import java.util.List ;
- public class ArrayListDemo03{
- public static void main(String args[]){
- List<String> allList = null ;
- allList = new ArrayList<String>() ; // 指定操作的泛型为String
- allList.add("Hello") ; // 此方法由Collection接口而来
- allList.add(0,"World") ; // 在第一个位置上添加新的内容
- allList.add("liuXun") ; // 向Collection中加入内容
- allList.add("1993") ;
- 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) + "、") ;
- }
- }
- };
此种输出方式是List接口所独有的,而其他接口没有的,尤其是Collection中是没有根据索引取出内容的操作。
- import java.util.ArrayList ;
- import java.util.List ;
- public class ArrayListDemo04{
- public static void main(String args[]){
- List<String> allList = null ;
- allList = new ArrayList<String>() ; // 指定操作的泛型为String
- allList.add("Hello") ; // 此方法由Collection接口而来
- allList.add(0,"World") ; // 在第一个位置上添加新的内容
- allList.add("liuxun") ; // 向Collection中加入内容
- allList.add("1993728") ;
- 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() ; // 返回Object类型
- for(int i=0;i<obj.length;i++){
- String temp = (String)obj[i] ; // 进行向下转型
- System.out.print(temp + "、") ;
- }
- }
- };
- import java.util.ArrayList ;
- import java.util.List ;
- public class ArrayListDemo05{
- public static void main(String args[]){
- List<String> allList = null ;
- allList = new ArrayList<String>() ; // 指定操作的泛型为String
- System.out.println("集合操作前是否为空?" + allList.isEmpty()) ;
- allList.add("Hello") ; // 此方法由Collection接口而来
- allList.add(0,"World") ; // 在第一个位置上添加新的内容
- allList.add("liuxun") ; // 向Collection中加入内容
- allList.add("1993728") ;
- System.out.println(allList.contains("Hello")?"\"Hello\"字符串存在!" : "\"Hello\"字符串不存在!") ;
- List<String> allSub = allList.subList(1,3) ; // 字符串截取
- System.out.println("集合截取:") ;
- for(int i=0;i<allSub.size();i++){
- System.out.print(allSub.get(i) + "、") ;
- }
- System.out.println("\nliuxun字符串的位置:" + allList.indexOf("liuxun")) ;
- System.out.println("集合操作后是否为空?" + allList.isEmpty()) ;
- }
- };
以上的操作都是由ArrayList子类完成的。
挽救的子类:Vector
- import java.util.Vector ;
- import java.util.List ;
- public class VectorDemo01{
- public static void main(String args[]){
- List<String> allList = null ;
- allList = new Vector<String>() ; // 指定操作的泛型为String
- allList.add("Hello") ; // 此方法由Collection接口而来
- allList.add("Hello") ; // 此方法由Collection接口而来
- allList.add(0,"World") ; // 在第一个位置上添加新的内容
- allList.add("liuxun") ; // 向Collection中加入内容
- allList.add("1993728") ;
- for(int i=0;i<allList.size();i++){
- System.out.print(allList.get(i) + "、") ;
- }
- }
- };
因为Vector类本身属于旧的类,所以在类中也提供了很多重复的方法。
- import java.util.Vector ;
- import java.util.List ;
- public class VectorDemo02{
- public static void main(String args[]){
- Vector<String> allList = null ;
- allList = new Vector<String>() ; // 指定操作的泛型为String
- allList.addElement("Hello") ; // 此方法由Collection接口而来
- allList.addElement("liuxun") ; // 向Collection中加入内容
- allList.addElement("1993728") ;
- for(int i=0;i<allList.size();i++){
- System.out.print(allList.get(i) + "、") ;
- }
- }
- };
子类的差异:ArrayList与Vector的区别
Java类集框架——List接口的更多相关文章
- java:类集框架conllection接口list,set
类集中提供了以下几种接口: 1.单值操作接口:conllection,List,Set list和set是conllection接口的子接口 2.一对值的操作接口:Map 3.排序的操作接口:Sort ...
- 浅谈java类集框架和数据结构(1)
在另外一篇博客我简单介绍了java类集框架相关代码和理论. 这一篇博客我主要分析一下各个类集框架的原理以及源码分析. 一:先谈谈LinkedList 这是LinkedList源码的开头,我们能看到几点 ...
- 专题笔记--Java 类集框架
Java 类集框架 1. Java类集框架产生的原因 在基础的应用中,我们可以通过数组来保存一组对象或者基本数据,但数组的大小是不可更改的,因此出于灵活性的考虑和对空间价值的担忧,我们可以使用链表来实 ...
- 浅谈java类集框架和数据结构(2)
继续上一篇浅谈java类集框架和数据结构(1)的内容 上一篇博文简介了java类集框架几大常见集合框架,这一篇博文主要分析一些接口特性以及性能优化. 一:List接口 List是最常见的数据结构了,主 ...
- Java类集框架详细汇总-底层分析
前言: Java的类集框架比较多,也十分重要,在这里给出图解,可以理解为相应的继承关系,也可以当作重要知识点回顾: Collection集合接口 继承自:Iterable public interfa ...
- java类集框架(ArrayList,LinkedList,Vector区别)
主要分两个接口:collection和Map 主要分三类:集合(set).列表(List).映射(Map)1.集合:没有重复对象,没有特定排序方式2.列表:对象按索引位置排序,可以有重复对象3.映射: ...
- java类集框架图(google找的,备个份)
- Java -- Java 类集 -- 目录
13.1 认识类集 13.1.1 基本概念 13.1.2 类集框架主要接口 13.2 Collection接口 13.2.1 Collection接口的定义 13.2.2 Collection子接口的 ...
- java:类集框架
类集框架:jdk提供的一系列类和接口,位于java.util包当中,主要用于存储和管理对象,主要分为三大类:集合.列表和映射. 集合Set:用于存储一系列对象的集合.无序.不允许重复元素. 列表Lis ...
随机推荐
- BCM_SDK命令
启动bcm的sdk,会进入一个类似shell的交互界面,在其中如入命令,可以配置交换机芯片.本文主要记录一下命令: 1.端口限速命令 2.链路聚合命令 3.i2c控制命令 启动方法: /tmp/bcm ...
- Zookeeper 基础
在深入了解ZooKeeper的运作之前,让我们来看看ZooKeeper的基本概念.我们将在本章中讨论以下主题:1.Architecture(架构)2.Hierarchical namespace(层次 ...
- 【转载】C#进阶系列——动态Lamada(二:优化)
前言:前几天写了一篇动态Lamada的文章C#进阶系列——动态Lamada,受园友xiao99的启发,今天打算来重新优化下这个动态Lamada的工具类.在此做个笔记,以免以后忘了. 一.原理分析 上篇 ...
- QTableView修改数据后弹出是否保存的提示框。
自定义CustomDelegate继承自QStyledItemDelegate,重写setModelData(self, editor, model, index)方法 def setModelDat ...
- 【Java 线程的深入研究1】Java 提供了三种创建线程的方法
Java 提供了三种创建线程的方法: 通过实现 Runnable 接口: 通过继承 Thread 类本身: 通过 Callable 和 Future 创建线程. 1.通过实现 Runnable 接口来 ...
- Oracle查询优化--排序
--普通排序 SELECT * FROM emp ORDER BY sal DESC; --使用列序排序 DESC; --组合排序 DESC; --translate函数,参数分别用A.B.C表示 S ...
- ANSI 转 UTF-8
ANSI和UTF-8格式都不太了解,各自好像都有好几种,下载了一个库,文件基本都是ANSI格式,linux显示乱码,原来都是在虚拟机一个个的“另存为“完成的,这次文件有点多,因此需要用命令完成. 以下 ...
- 【Mongo】数据备份与还原
http://blog.51yip.com/nosql/1573.html mongorestore -d 数据库名 -c 集合名 --drop **.bson
- mongodb group php 操作
紧接着上篇来,这篇主要讲,mongodb的group功能,做的还是挺强大的,相当对于find(),skip(),distinct()等,用法比较复杂. 测试数据 > db.fruit.find( ...
- python 数据类型详解(转)
转自:http://www.cnblogs.com/linjiqin/p/3608541.html 目录1.字符串2.布尔类型3.整数4.浮点数5.数字6.列表7.元组8.字典9.日期 1.字符串1. ...