Java学习之List接口
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接口的更多相关文章
- Java 学习笔记(7)——接口与多态
上一篇说了Java面向对象中的继承关系,在继承中说到:调用对象中的成员变量时,根据引用类型来决定调用谁,而调用成员方法时由于多态的存在,具体调用谁的方法需要根据new出来的对象决定,这篇主要描述的是J ...
- java学习——JDK1.8接口和实现类
Java 8 新特性:接口的静态方法和默认方法 https://blog.csdn.net/sun_promise/article/details/51220518 接口的默认方法和静态方法 http ...
- java学习面向对象之接口
上一节当中我们说道抽象类,抽象类当中的方法可以是抽象的也可以是非抽象的,那么当抽象类中所有方法都是抽象的时候,我们就可以把它重新定义为接口.代码示例: abstract class Animal { ...
- Java学习笔记 07 接口、继承与多态
一.类的继承 继承的好处 >>使整个程序架构具有一定的弹性,在程序中复用一些已经定义完善的类不仅可以减少软件开发周期,也可以提高软件的可维护性和可扩展性 继承的基本思想 >>基 ...
- java学习之(接口)
使用接口 接口不能用于创建实例,但接口可以用于声明引用类型变量.当使用接口来声明引用类型变量时,这个引用类型变量必须引用到其实现类的对象.除此之外,接口的主要用途就是被实现类实现.归纳起来,接口主要有 ...
- Java学习笔记之接口
一.接口的概念与定义 首先考虑一个简单的接口的定义: public interface Output { int MAX_LINE = 40; void out(); void getData(Str ...
- java学习--抽象类与接口
一.抽象 在使用抽象类时需要注意几点: 1.抽象类不能被实例化,实例化的工作应该交由它的子类来完成,它只需要有一个引用即可. 2.抽象方法必须由子类来进行重写. 3.只要包含一个抽象方法的抽象类,该方 ...
- 1)Java学习笔记:接口和抽象类的异同
Java接口和抽象类很像,他们有哪些相同点和异同点呢,下面我们做一个小结 相同 ① 都不能被实例化,都位于继承树的顶端,用于被实现或者继承 ② 都可以包含抽象方法,实现接口或者继承抽象类的普通子类都必 ...
- Java学习笔记之——接口
接口(interface)和抽象类 为何要定义接口?------>实现不同的方法 Java的设计思想是单继承和多实现 类:属性和方法的集合,方法围绕着属性转,可以理解为自定义的类型 接口:与类是 ...
随机推荐
- ASP.NET-FineUI开发实践-9(三)
1. TextChanged事件前台触发回发后台,接上文,先给TextBox1加上事件,看看是怎么生成出来的, 注意AutoPostBack="true",找源代码,f4多出了个 ...
- hdu 2104
#include <iostream> using namespace std; int gcd(int a,int b) { return (b?gcd(b,a%b):a); } int ...
- JAVA File转Byte[]
/** * 获得指定文件的byte数组 */ public static byte[] getBytes(String filePath){ byte[] buffer = null; try { F ...
- python 下的数据结构与算法---6:6大排序算法
顶先最后推荐:哈哈,意思是放到顶部强调其重要性,但是应该我总结的六种算法看完了后再看的一篇醍醐灌顶的文章 一:冒泡排序(Bubble Sort) 原理:假设有n个数,第一轮时:从第一个元素开始,与相邻 ...
- ruby 知识点
$LOAD_PATH 执行 require 读取文件时搜索的目录名数组,也可以写作 $: 创建 URI 的时候可以直接这样 URI("http://www.dy2018.com/i/9751 ...
- Oracle 优化——位图、函数等索引介绍
一.位图索引 我将使用一个例子,来描述位图索引的存储,并分析它的优点. Table :Loans 放贷信息 ID userId 行业投向 币种 证件类型 还本付息方式 状态 1 1 农业 人民币 身份 ...
- MySQL 行子查询
MySQL 行子查询 行子查询是指子查询返回的结果集是一行 N 列,该子查询的结果通常是对表的某行数据进行查询而返回的结果集. 一个行子查询的例子如下: SELECT * FROM table1 WH ...
- [转]《深度探索C++对象模型》读书笔记[二]
3.3 Data Member的存取1. 不管什么情况,每一个static data member只有一个实体,放在程序的data segment之中,每次程序取用static member,不管 ...
- haslayout和BFC
感谢CSS涛的分享,参考文章: (1)haslayout:http://aibusy.com/blog/?p=53 (2)BFC 神奇背后的原理:http://aibusy.com/blog/?p=8 ...
- web Service试用简例
1.打开文件,选择新建Asp.Net web服务. 2.出现新建页面如下. using System; using System.Collections.Generic; using System.L ...