List接口是Collection的子接口,用于定义线性表结构,当中ArrayList能够理解为一个动态数组,而LinkedList能够理解为一个链表

经常使用操作:

插入和删除操作:

void add(int index,E element):

将给定的元素插入到指定位置,原位置及兴许元素都顺序向后移动。

E remove(int index):

删除给定位置的元素。并将被删除的元素返回。

get和set方法:

List除了继承Collection定义的方法外,还依据其线性表的数据结构定义了一系列方法,当中最经常使用的就是get和set

E get(int index):获取集合中指定下标相应的元素。下标从0開始。

E set(int index, E elment):将给定的元素存入给定位置,并将原位置的元素返回。

public class ListDemo {

    public static void main(String[] args) {
List<String> list = new ArrayList<String>();
list.add("java");
list.add("python");
list.add("c#");
list.add("script");
//获取list中第一个元素
String str = list.get(0);
System.out.println(str);
//将list中下标为1的元素内容改为Android
String setOld = list.set(1, "Android");
System.out.println(list);
//打印更改前数据
System.out.println(setOld);
//删除元素。会返回已删除元素内容
String removeOld = list.remove(2);
System.out.println(list);
System.out.println(removeOld);
}
}

运行结果:

java

[java, Android, c#, script]

python

[java, Android, script]

c#

subList方法:

List的subList方法用于获取子List。

须要注意的是。subList获取的List与原List占有同样的存储空间,对子List的操作会影响的原List。

List subList(int fromIndex, int toIndex);

fromIndex和toIndex是截取子List的首尾下标(前包含,后不包含)

public class ListDemo {

    public static void main(String[] args) {
List<String> list = new ArrayList<String>();
list.add("java");
list.add("python");
list.add("c#");
list.add("script"); List<String > subList = list.subList(1, 3);
System.out.println(subList); for(int i = 0; i < subList.size(); i++) {
subList.set(i,subList.get(i) +"str") ;
} System.out.println(list);
}
}

运行结果:

[python, c#]

[java, pythonstr, c#str, script]

List转换为数组:

List的toArray方法用于将集合转换为数组。

但实际上该方法是在Collection中定义的,所以全部的集合都具备这个功能。

其有两个方法:

Object[] toArray()

T[] toArray(T[] a)

public class ListDemo {

    public static void main(String[] args) {
List<String> list = new ArrayList<String>();
list.add("java");
list.add("python");
list.add("c#");
list.add("script"); String [] arr = list.toArray(new String[list.size()]);
for(String itArr : arr) {
System.out.print(itArr+" ");
}
}
}

运行结果:

[Ljava.lang.String;@3b95a09c

java python c# script

数组转换为List

Arrays类中提供了一个静态方法asList,使用该方法我们能够将一个数组转换为相应的List集合。

其方法定义为:

static List asList

public class ListDemo {

    public static void main(String[] args) {
String [] arr = new String[] {"one","two","three","four"};
List<String> asList = Arrays.asList(arr);
//报错。转换后的数组不能加入删除元素
// asList.add("python");
// asList.remove(0);
String old = asList.set(0, "python");
System.out.println(asList);
System.out.println(old); }
}

运行结果:

[python, two, three, four]

one

总结:使用List的时候要注意ArrayList和LinkedList的特性,ArrayList更适合遍历和查找。而LinkedList更适合进行改动和增删等操作。

Java List具体解释的更多相关文章

  1. java常用英文解释

    java常用名词解释: OO: object-oriented ,面向对象 OOP:object-oriented programming,面向对象编程 Author:JCC Object:对象JDK ...

  2. Java多线程具体解释

    Java多线程具体解释 多线程简单介绍 概述 多线程(multithreading).是指从软件或者硬件上实现多个线程并发运行的技术.具有多线程能力的计算机因有硬件支持而可以在同一时间运行多于一个线程 ...

  3. Java到底是解释型还是编译型语言

    Java到底是解释型还是编译型语言? 定义 回答这个问题,我们首先来看下概念: 开发人员编写代码,语言是人类可理解的方式,是具有语义的,然而计算机无法理解和执行,因此需要做一层转换. 解释型语言: 运 ...

  4. Java keyword具体解释

    訪问控制修饰符号 1)        private 私有的 private keyword是訪问控制修饰符,能够应用于类.方法或字段(在类中声明的变量). 仅仅能在声明 private(内部)类.方 ...

  5. JAVA Calendar具体解释

    (在文章的最后,将会介绍Date类,假设有兴趣,能够直接翻到最后去阅读) 到底什么是一个 Calendar 呢?中文的翻译就是日历,那我们立马能够想到我们生活中有阳(公)历.阴(农)历之分.它们的差别 ...

  6. 微信公众平台java开发具体解释(project代码+解析)

    说明: 本次的教程主要是对微信公众平台开发人员模式的解说,网络上非常多类似文章,但非常多都让初学微信开发的人一头雾水,所以总结自己的微信开发经验,将微信开发的整个过程系统的列出,并对主要代码进行解说分 ...

  7. 用java字节码解释i++和++i(转)

    这几天抽着一些时间,把Java的class文件结构研究了一下,再后来就想起了这个令人厌烦的问题,想从字节码指令的角度看看,java到底是怎么处理这个的 先看一段java代码 package bishi ...

  8. 一个Java例子,解释清楚注解的作用

    原文出处:码农登陆 写在前面 今天聊的是注解,但其实单纯说注解,注解本身没有任何的作用.简单说和注释没啥区别,而它有作用的原因是:注解解释类,也就是相关对代码进行解释的特定类.一般这些类使用反射是可以 ...

  9. java线程具体解释

    线程与进程的差别 (1)程序是一段静态的代码,进程是程序的一次动态执行过程.它是操作系统资源调度的基本单位.线程是比进程更小的执行单位.一个进程在其执行过程中,能够产生多个线程.所以又称线程为&quo ...

  10. java泛型具体解释

    为什么引入泛型 bug是编程的一部分,我们仅仅能尽自己最大的能力降低出现bug的几率,可是谁也不能保证自己写出的程序不出现不论什么问题. 错误可分为两种:编译时错误与执行时错误.编译时错误在编译时能够 ...

随机推荐

  1. 要知道的DbProviderFactory

    了解DbProviderFactory 前不久想使用下EF的通用单表增删改的特性,当时使用控制台做测试,怎么弄都没成功,原因出在app.config中,反而在mvc项目中,就没有任何问题.在反复的更改 ...

  2. 【Git】GitHub的SSH提交配置[

    Git可以通过https方式和ssh方式连接服务器上的仓库. 两者比较: 1.https: 比较方便,但是每次fetch和push代码都需要输入账号和密码,略显麻烦 2.ssh: 传输前压缩数据,传输 ...

  3. 转载~基于比较的排序算法的最优下界为什么是O(nlogn)

    基于比较的排序算法的最优下界为什么是O(nlogn) 发表于2013/12/21 16:15:50  1024人阅读 分类: Algorithm 1.决策二叉树 回答这个问题之前我们先来玩一个猜数字的 ...

  4. xpath和CSS选择器

    .content是二进制 用来处理声音.图片.视频 .text是文本 xpath语法: /一层层查找 //不固定位置 //title/text() @选取属性 [@href]和[@href=''] . ...

  5. 100行代码实现最简单的基于FFMPEG+SDL的视频播放器(SDL1.x)【转】

    转自:http://blog.csdn.net/leixiaohua1020/article/details/8652605 版权声明:本文为博主原创文章,未经博主允许不得转载.   目录(?)[-] ...

  6. screenshoter 連續截圖工具

    https://pcrookie.com/?p=993 顯示 mouse 設定 Settings -> Saving -> Display mouse cursor

  7. Linux中断(interrupt)子系统之五:软件中断(softIRQ)【转】

    转自:http://blog.csdn.net/droidphone/article/details/7518428 版权声明:本文为博主原创文章,未经博主允许不得转载.   目录(?)[-] 软件中 ...

  8. Centos 查看硬盘空间

    df -h du -ah --max-depth=1 目录深度为1 -h:以人类可读的方式显示 -a:显示目录占用的磁盘空间大小,还要显示其下目录和文件占用磁盘空间的大小 -s:显示目录占用的磁盘空间 ...

  9. 网盘+SVN

    1.安装网盘 选择一个国内有名的网盘存储,例如金山网盘.360云盘等,注册账户会默认赠送几G的使用空间,然后下载其对应的网盘客户端管理软件(也可以使用浏览器方式),使用账号登录,就可以上传.管理文件等 ...

  10. 陕西师范大学第七届程序设计竞赛网络同步赛 F WWX的礼物【数学/k进制下x^n的位数/log】

    链接:https://www.nowcoder.com/acm/contest/121/F来源:牛客网 题目描述 WWX的女朋友送给了他一个礼物,可是礼物却被一把K进制密码锁锁住了.在礼物盒上还有一张 ...