Java List具体解释
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具体解释的更多相关文章
- java常用英文解释
java常用名词解释: OO: object-oriented ,面向对象 OOP:object-oriented programming,面向对象编程 Author:JCC Object:对象JDK ...
- Java多线程具体解释
Java多线程具体解释 多线程简单介绍 概述 多线程(multithreading).是指从软件或者硬件上实现多个线程并发运行的技术.具有多线程能力的计算机因有硬件支持而可以在同一时间运行多于一个线程 ...
- Java到底是解释型还是编译型语言
Java到底是解释型还是编译型语言? 定义 回答这个问题,我们首先来看下概念: 开发人员编写代码,语言是人类可理解的方式,是具有语义的,然而计算机无法理解和执行,因此需要做一层转换. 解释型语言: 运 ...
- Java keyword具体解释
訪问控制修饰符号 1) private 私有的 private keyword是訪问控制修饰符,能够应用于类.方法或字段(在类中声明的变量). 仅仅能在声明 private(内部)类.方 ...
- JAVA Calendar具体解释
(在文章的最后,将会介绍Date类,假设有兴趣,能够直接翻到最后去阅读) 到底什么是一个 Calendar 呢?中文的翻译就是日历,那我们立马能够想到我们生活中有阳(公)历.阴(农)历之分.它们的差别 ...
- 微信公众平台java开发具体解释(project代码+解析)
说明: 本次的教程主要是对微信公众平台开发人员模式的解说,网络上非常多类似文章,但非常多都让初学微信开发的人一头雾水,所以总结自己的微信开发经验,将微信开发的整个过程系统的列出,并对主要代码进行解说分 ...
- 用java字节码解释i++和++i(转)
这几天抽着一些时间,把Java的class文件结构研究了一下,再后来就想起了这个令人厌烦的问题,想从字节码指令的角度看看,java到底是怎么处理这个的 先看一段java代码 package bishi ...
- 一个Java例子,解释清楚注解的作用
原文出处:码农登陆 写在前面 今天聊的是注解,但其实单纯说注解,注解本身没有任何的作用.简单说和注释没啥区别,而它有作用的原因是:注解解释类,也就是相关对代码进行解释的特定类.一般这些类使用反射是可以 ...
- java线程具体解释
线程与进程的差别 (1)程序是一段静态的代码,进程是程序的一次动态执行过程.它是操作系统资源调度的基本单位.线程是比进程更小的执行单位.一个进程在其执行过程中,能够产生多个线程.所以又称线程为&quo ...
- java泛型具体解释
为什么引入泛型 bug是编程的一部分,我们仅仅能尽自己最大的能力降低出现bug的几率,可是谁也不能保证自己写出的程序不出现不论什么问题. 错误可分为两种:编译时错误与执行时错误.编译时错误在编译时能够 ...
随机推荐
- 编写Shell脚本的最佳实践,规范一
随着写的SHELL程序越来越多,发现自己每次写都有不同的习惯或者定义了不同的东西,变量名定义得不一样,整个程序缩进不统一,没有注释等问题,等我回过头看这些程序的时候发现很麻烦.所以写了个shell代码 ...
- Selenium2设置隐式等待和显示等待
1. 设置显示等待 Java代码: public static WebElement WaitForElement(WebDriver driver, String locator) { WebEle ...
- 【友盟统计报表解读】之错误分析iOS版
http://bbs.umeng.com/thread-6908-1-1.html 错误分析功能说明1.概述 错误分析是友盟为移动开发者提供的Crash收集和分析工具,帮助开发者监测App在移动设备上 ...
- 微信小程序实现豆瓣读书
个人练习项目,使用了scss+webstorm watcher来处理样式.整体上没有什么难点. github:https://github.com/axel10/wx-douban-read
- React+dva.js+typescript实现百度贴吧移动web端
个人练习作品,有bug欢迎在github上提:) github地址:https://github.com/axel10/react-tieba 整个项目中实现起来最麻烦的应该算是滚动位置记忆和路由动画 ...
- Error:scalac: Error: org.jetbrains.jps.incremental.scala.remote.ServerException
Error:scalac: Error: org.jetbrains.jps.incremental.scala.remote.ServerException reason:JDK与Scala的版本不 ...
- 洛谷——P1755 斐波那契的拆分
P1755 斐波那契的拆分 题目背景 无 题目描述 已知任意一个正整数都可以拆分为若干个斐波纳契数,现在,让你求出n的拆分方法 输入输出格式 输入格式: 一个数t,表示有t组数据 接下来t行,每行一个 ...
- 洛谷 P2183 [国家集训队]礼物
题目描述 一年一度的圣诞节快要来到了.每年的圣诞节小E都会收到许多礼物,当然他也会送出许多礼物.不同的人物在小E心目中的重要性不同,在小E心中分量越重的人,收到的礼物会越多.小E从商店中购买了n件礼物 ...
- [CC-CHANOQ]Chef and odd queries
题目大意: 给定$n(10^5)$个线段$[l_i,r_i](1\leq l_i,r_i\leq n)$,有$q(q\leq10^5)$组询问,每次给出$m_i(\sum m_i\leq n)$个点$ ...
- 八. 输入输出(IO)操作7.文件的随机读写
Java.io 包提供了 RandomAccessFile 类用于随机文件的创建和访问.使用这个类,可以跳转到文件的任意位置读写数据.程序可以在随机文件中插入数据,而不会破坏该文件的其他数据.此外,程 ...