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. Codevs 2080 特殊的质数肋骨

      题目描述 Description 农民约翰的母牛总是产生最好的肋骨. 你能通过农民约翰和美国农业部标记在每根肋骨上的数字认出它们. 农民约翰确定他卖给买方的是真正的质数肋骨,是因为从右边开始切下肋 ...

  2. 牧场行走(LCA)

    神奇传送门 好吧,这题很有意思.. 第一眼撇的时候还以为是(SPFA)呜.... 然后发现要Q次询问就想到了LCA 但是发现不是求LCA.. 于是想到了一个神奇的定律: 两点的LCA一定在u到v的最短 ...

  3. selenium运行js下载文书网的文件

    from selenium import webdriver driver=webdriver.Chrome() driver.get("http://wenshu.court.gov.cn ...

  4. 解决Django的admin界面中文乱码

    解决Django的admin界面中文乱码 问题陈述 最近在做一个很小的Django项目时,使用了自带的sqlite作为数据库.后台admin界面在显示中文数据时,总会遇到乱码.这里截取一小部分代码: ...

  5. -webkit-box-flex: 1;属性和 float 属性冲突造成元素看不见的BUG

    今天切图的时候发现了这个问题,样式是这样的: .check-btns-box .check-btn{float: left;-webkit-box-flex: 1;-moz-box-flex: 1;- ...

  6. ubuntu16下安装telnet和opensshserver

    安装了虚拟机,使用的是ubuntu 16,server版本. 启动后发现没有telnet和ssh,就安装了(netstat -a|grep telnet). apt-get install openb ...

  7. VS2010/2012Web负载测试

    原文地址:http://www.cnblogs.com/aarond/archive/2013/04/18/performance.html VS自带的Web负载测试真的很大程度上能和专业的loadr ...

  8. PostgreSQL(EXCEPT,INTERSECT)

    except 可以查看表一对表二不一样的数据,有点像是对表一进行表一表二交集的反集的交集,好绕: intersect 可以查看表一和表二一样的数据,求交集: select t1.name,t1.age ...

  9. HDU 6299.Balanced Sequence-贪心、前缀和排序 (2018 Multi-University Training Contest 1 1002)

    HDU6299.Balanced Sequence 这个题就是将括号处理一下,先把串里能匹配上的先计数去掉,然后统计左半边括号的前缀和以及右半边括号的前缀和,然后结构体排序,然后遍历一遍,贪心策略走一 ...

  10. LCA【p4281】[AHOI2008]紧急集合 / 聚会

    Description 欢乐岛上有个非常好玩的游戏,叫做"紧急集合".在岛上分散有N个等待点,有N-1条道路连接着它们,每一条道路都连接某两个等待点,且通过这些道路可以走遍所有的等 ...