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 ...
随机推荐
- 很开心! 纪念一下 ^_^ 考勤系统(weX5+echarts3.0+Baas )
- 你是否有遇到过某个实体类字段(属性)过多的情况,不想每次点的话戳进来(C# 反射)
贴上一段代码: bureaucraticEntities apply = new bureaucraticEntities(); Type tapp= app.GetType(); Type ttmp ...
- NPOI从数据库中调取数据直接导出到EXCEL中
关于NPOI NPOI是POI项目的.NET版本,是由@Tony Qu(http://tonyqus.cnblogs.com/)等大侠基于POI开发的,可以从http://npoi.codeplex. ...
- 启用lazyload插件,减少图片加载
使用lazyload的js插件,减少图片加载,提高页面加载速度和节省流量.虽然这个头像是第三方服务器来的,不消费博客的流量,但是能节省部分访客的加载时间,也是不错的哦. 用lazyload插件,只是后 ...
- Maven War包 POM配置文件
如何为你的Web程序(war包设定配置文件) 约定 http://maven.apache.org/plugins/maven-war-plugin/examples/adding-filtering ...
- ubuntu 安装source insight
1. 首先安装wine sudo apt-get install wine 2.下载source insight 安装包(.exe) 3,将安装包放到已知的目录下. 4.在终端进行安装,wine Si ...
- JAVA实现随机无重复数字功能
本文给大家介绍如何在JAVA中实现随机无重复数字的功能.如果您是初学者的话,有必要看一看这篇文章,因为这个功能一般会在面试中遇到.包括我本人在招聘人员的时候也喜欢拿这个问题去问别人,主要看一看考虑问题 ...
- swift - UISlider 的用法
swift的UISlider的用法和oc基本没有区别 1.创建 class SecondViewController: UIViewController { var slider = UISlider ...
- Python 插件安装
0.下载Python包文件后,解压缩: 1.cd 到 插件解压缩目录,里面有setup.py的文件: 2.定位到当前目录: 3.执行:python setup.py install; 4.结束安装. ...
- iOS - UITableView判断reloadData加载数据已经结束
问题: stackoverflow上有人提问这样的问题 http://stackoverflow.com/questions/16071503/how-to-tell-when-uitableview ...