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 ...
随机推荐
- VS2010 快捷键设置,快速编码1
全屏:Shift+Alt+Enter注释选定内容:Ctrl+E+C/Crtr+E+U代码格式化:ctrl+E+F VS2008 使用小技巧——快捷键1. 怎样调整代码排版的格式?选择:编辑—>高 ...
- php -- 实现linux关机、重启功能
有时候,我们自己可以DIY一个控制面板实现linux的关机重启功能.众所周知,linux是一个基于文件的操作系统,所以要实现系统的关机重启功能必须满足以下两点 一.知道命令的绝对路径 在linux下操 ...
- R语言绘图边框
在R语言中, 绘图边框一共有3个区域: device region : figure region : plot region : 在描述不同区域大小的时候,有对应的不同参数: din : 返回d ...
- CentOS系统资源常用命令
系统: # uname -a # 查看内核/操作系统/CPU信息 # cat /etc/issue # cat /etc/redhat-release # 查看操作系统版本 # cat /proc ...
- tarjan算法-解决有向图中求强连通分量的利器
小引 看到这个名词-tarjan,大家首先想到的肯定是又是一个以外国人名字命名的算法.说实话真的是很佩服那些算法大牛们,佩服得简直是五体投地啊.今天就遇到一道与求解有向图中强连通分量的问题,我的思路就 ...
- JavaSE(十)之反射
开始接触的时候可能大家都会很模糊到底什么是反射,大家都以为这个东西不重要,其实很重要的,几乎所有的框架都要用到反射,增加灵活度.到了后面几乎动不动就要用到反射. 首先我们先来认识一下对象 学生---- ...
- 微信支付(公众号支付APIJS、app支付)服务端统一下单接口java版
一.微信公众号支付APIJS: 要完整的实现微信支付功能,需要前后端一起实现,还需要微信商户平台的配置.这里只是涉及服务端的代码. jar包:pom.xml <!-- ↓↓↓↓↓↓↓↓ 支付相关 ...
- windows环境下mongodb下载、安装和使用总结
一.首先安装mongodb 1.下载地址:http://dl.mongodb.org/dl/win32/x86_64 2.解压缩到自己想要安装的目录,比如d:\mongodb 3.创建文件夹d:\mo ...
- js正则表达式的基本语法
1.正则表达式基本语法 创建正则表达式 var re = new RegExp();//RegExp是一个对象,和Aarray一样 //但这样没有任何效果,需要将正则表达式的内容作为字符串传递进去 r ...
- Blender之OBJ转json
要想从 Blender 中导出 Three. 模型, 我们首先要将 Tbree.js 导出器添加到Blender 中. 你可以从www.blender.org 上下载 Blender,然后按照相应平台 ...