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 ...
随机推荐
- QT 交叉编译工具选择
使用QT交叉编译,生成的都是x86的可执行文件.Zoro告诉我交叉工具配置错了. 参考链接: http://www.cnblogs.com/zengjfgit/p/4744507.html linux ...
- SSH远程登录其他机器
常用格式:ssh [-l login_name] [-p port] [user@]hostname更详细的可以用ssh -h查看. 不指定用户: ssh 192.168.0.11 指定用户: ssh ...
- Mysql数据库中InnoDB和MyISAM的差别
Mysql数据库中InnoDB和MyISAM的差别 InnoDB和MyISAM是在使用MySQL最常用的两个表类型,各有优缺点,视具体应用而定.基本的差别为:MyISAM类型不支持事务处理等高级处理, ...
- 多媒体开发之rtcp详解---rtcp数据包
http://www.360doc.com/content/13/0606/10/1317564_290865866.shtml http://blog.csdn.net/hrbeuwhw/artic ...
- jquery 中json数组的操作(转)
在jquery中处理JSON数组的情况中遍历用到的比较多,但是用添加移除这些好像不是太多. 今天试过json[i].remove(),json.remove(i)之后都不行,看网页的DOM对象中好像J ...
- ajax等待(比较慢时)(显示图片)
html页面 <div style="display:none;" id="loading-mask"></div> <div i ...
- PHP大小写是否敏感问题
一.大小写敏感 1. 变量名区分大小写 所有变量均区分大小写,包括普通变量以及$_GET,$_POST,$_REQUEST,$_COOKIE,$_SESSION,$GLOBALS,$_SERVER,$ ...
- JsonConvert.DeserializeAnonymousType
string JsApiTicketString = string.Empty; using (StreamReader reader = new StreamReader(response.GetR ...
- SQLServer------Sql Server性能优化辅助指标SET STATISTICS TIME ON和SET STATISTICS IO ON
转载: http://www.cnblogs.com/xqhppt/p/4041799.html
- JBPM4.4_执行流程实例
1. 执行流程实例 1.1. 启动流程实例 说明:流程实例创建后,直接就到开始活动后的第一个活动,不会在开始活动停留. 1.1.1. 示例代码1:使用指定key的最新版本的流程定义启动流程实例 Pro ...