List接口

  List接口的定义如下:

public interface List<E>extends Collection<E>

  可以发现List接口时Collection接口的子类,List接口大量的扩充了Collection接口的操作,List接口里的内容是允许重复的。

List接口常用方法

  一句话概括这些方法的功能:就是为了实现增删减查的功能。

  有如下的方法:

void add(int index,E element)
//在列表的指定位置插入指定元素(可选操作)。将当前处于该位置的元素(如果有的话)和所有后续元素向右移动(在其索引中加 1)。
boolean addAll(int index, Collection<? extends E> c)
//将指定 collection 中的所有元素都插入到列表中的指定位置(可选操作)。
E get(int index) //返回列表中指定位置的元素。
int indexOf(Object o)
//返回此列表中第一次出现的指定元素的索引;如果此列表不包含该元素,则返回 -1
E set(int index,E element)
//用指定元素替换列表中指定位置的元素(可选操作)。
boolean remove(Object o)
//从此列表中移除第一次出现的指定元素(如果存在)(可选操作)。如果列表不包含元素,则不更改列表。

  当然除了以上这些,还有其他的方法。

List接口的子类—ArrayList(常用)

  ArrayList的定义如下:

public class ArrayList<E>extends AbstractList<E>implements List<E>, RandomAccess, Cloneable, Serializable

  ArrayList是List接口的子类,那么如果想使用List接口,就必须通过对象的多态性来实例化List接口。下面通过实例了解ArrayList。

  实例一:指定位置添加数据

import java.util.ArrayList;
import java.util.List;
public class ArrayListTest {
public static void main(String[] args) {
List<String> lists=new ArrayList<String>();
lists.add("Hello"); //加入内容
lists.add(0,"world");
System.out.println(lists);
}
}

  运行结果如下:

[world, Hello]

  实例二:指定位置添加内容

import java.util.ArrayList;
import java.util.List;
public class ArrayListTest {
public static void main(String[] args) {
List<String> lists=new ArrayList<String>();
List<String> lists1=new ArrayList<String>();
lists.add("Hello");
lists.add("world");
System.out.println(lists);
lists1.add("This");
lists1.add("is");
lists.addAll(0,lists1); //在指定位置添加一组内容
System.out.println(lists);
}
}

  运行结果如下:

[Hello, world]
[This, is, Hello, world]

  实例三:删除内容(可以使用两种方式)

import java.util.ArrayList;
import java.util.List;
public class ArrayListTest {
public static void main(String[] args) {
List<String> lists=new ArrayList<String>();
lists.add("输出:");
lists.add("Hello");
lists.add("world");
System.out.println(lists);
lists.remove(0); //通过编号删除内容
System.out.println(lists);
lists.remove("Hello"); //通过内容来删除内容
System.out.println(lists);
}
}

  运行结果如下:

[输出:, Hello, world]
[Hello, world]
[world]

  通过以上程序我们发现内容前后都有'[]',还存在',',那么如何去除他们呢?

  实例四:依次输出内容

import java.util.ArrayList;
import java.util.List;
public class ArrayListTest {
public static void main(String[] args) {
List<String> lists=new ArrayList<String>();
lists.add("输出:");
lists.add("Hello");
lists.add("world");
for(int i=0;i<lists.size();i++){ //size()方法取得集合中内容的个数
System.out.println(lists.get(i)); //get()方法取得其中的内容
}
}
}

  运行结果如下:

输出:
Hello
world

  此输出方式(根据所有取出内容)是List接口独有的,其他接口时没有的。这也是为什么List接口里的内容可以重复的原因。

  实例四

import java.util.ArrayList;
import java.util.List;
public class ArrayListTest {
public static void main(String[] args) {
List<String> lists=new ArrayList<String>();
System.out.println("判断集合是否为空:"+lists.isEmpty());
lists.add("输出:");
lists.add("Hello");
lists.add("world");
System.out.println("Hello所在位置是:"+lists.indexOf("Hello"));
System.out.println("是否存在world:"+lists.contains("world"));
}
}

  输出结果如下:

判断集合是否为空:true
Hello所在位置是:1
是否存在world:true

总结:

  List中允许重复元素

Java学习之List接口的更多相关文章

  1. Java 学习笔记(7)——接口与多态

    上一篇说了Java面向对象中的继承关系,在继承中说到:调用对象中的成员变量时,根据引用类型来决定调用谁,而调用成员方法时由于多态的存在,具体调用谁的方法需要根据new出来的对象决定,这篇主要描述的是J ...

  2. java学习——JDK1.8接口和实现类

    Java 8 新特性:接口的静态方法和默认方法 https://blog.csdn.net/sun_promise/article/details/51220518 接口的默认方法和静态方法 http ...

  3. java学习面向对象之接口

    上一节当中我们说道抽象类,抽象类当中的方法可以是抽象的也可以是非抽象的,那么当抽象类中所有方法都是抽象的时候,我们就可以把它重新定义为接口.代码示例: abstract class Animal { ...

  4. Java学习笔记 07 接口、继承与多态

    一.类的继承 继承的好处 >>使整个程序架构具有一定的弹性,在程序中复用一些已经定义完善的类不仅可以减少软件开发周期,也可以提高软件的可维护性和可扩展性 继承的基本思想 >>基 ...

  5. java学习之(接口)

    使用接口 接口不能用于创建实例,但接口可以用于声明引用类型变量.当使用接口来声明引用类型变量时,这个引用类型变量必须引用到其实现类的对象.除此之外,接口的主要用途就是被实现类实现.归纳起来,接口主要有 ...

  6. Java学习笔记之接口

    一.接口的概念与定义 首先考虑一个简单的接口的定义: public interface Output { int MAX_LINE = 40; void out(); void getData(Str ...

  7. java学习--抽象类与接口

    一.抽象 在使用抽象类时需要注意几点: 1.抽象类不能被实例化,实例化的工作应该交由它的子类来完成,它只需要有一个引用即可. 2.抽象方法必须由子类来进行重写. 3.只要包含一个抽象方法的抽象类,该方 ...

  8. 1)Java学习笔记:接口和抽象类的异同

    Java接口和抽象类很像,他们有哪些相同点和异同点呢,下面我们做一个小结 相同 ① 都不能被实例化,都位于继承树的顶端,用于被实现或者继承 ② 都可以包含抽象方法,实现接口或者继承抽象类的普通子类都必 ...

  9. Java学习笔记之——接口

    接口(interface)和抽象类 为何要定义接口?------>实现不同的方法 Java的设计思想是单继承和多实现 类:属性和方法的集合,方法围绕着属性转,可以理解为自定义的类型 接口:与类是 ...

随机推荐

  1. [JavaScript]plupload多图片上传图片

    var uploader = new plupload.Uploader({ //创建实例的构造方法     runtimes: 'html5,flash,silverlight,html4',    ...

  2. CSS3 3D转换

    CSS3允许你使用3D转换来对元素进行格式化. 3D转换方法: rotateX() rotateY() 浏览器支持 属性 浏览器支持 transform           IE10和Firefox支 ...

  3. [php基础]记录PHP错误日志 display_errors与log_errors的区别

    display_errors 错误回显,一般常用语开发模式,但是很多应用在正式环境中也忘记了关闭此选项.错误回显可以暴露出非常多的敏感信息,为攻击者下一步攻击提供便利.推荐关闭此选项. display ...

  4. [!] Unable to satisfy the following requirements:

    出现这个问题是由于我本地Podfile文件上第三方版本太低. 解决方案就是,更新一下本地Podfile文件上的第三方版本,也就是pod update --verbose一下. 注意一下,这个命令需要很 ...

  5. CRT内存调试标记

    static unsigned char _bNoMansLandFill = 0xFD; /* fill no-man's land with this */ static unsigned cha ...

  6. 用命令行批处理bat,设置代理服务器、DNS、网关、WINS等

    http://hi.baidu.com/83050158/blog/item/50cbd63f9da79ccb7d1e711b.html 将下面代码复制到记事本,另存为NetSet.bat,修改相应i ...

  7. IRP派遣操作

    IRPTrace工具跟踪IRP 派遣函数(Dispathc Funtion)是windows驱动中的重要概念.驱动程序的主要功能是负责处理I/O请求,其中大部分I/O请求是在派遣函数中处理的.用户模式 ...

  8. RTC 之 ARM7 2136 ARM9之2410

    RTC 的原理都是一样的,但计数过程中的计数换算却不相同: ARM9 直接出来的是BCD 码,也就是0x30   就是30秒,没有换算了,而ARM7则不同,他是直接计数的,十进制的30秒则是0x1E, ...

  9. mongodb创建用户和密码

    创建数据库文件夹与日志文件mkdir /home/mongodb/datamkdir /home/mongodb/logstouch(创建文件)3. 启动mongodbcd到mongodb目录下的bi ...

  10. 基于verilog的FPGA编程经验总结(XILINX ISE工具)

    1.用ISE仿真的时候.所用变量一定要初始化. ISE默认初始量为"XXXXX", 而Quarters是默认为"00000"的, 其实实际上, 下到FPGA里后 ...