List接口的介绍

List接口简介:
java.util.List接口继承自Collection接口,是单列集合的一个重要分支,习惯性地会将实现了List接口的对象称为List集合。
在List集合中允许出现重复的元素,所有的元素是以一种线性方式进行存储的,在程序中可以通过索引来访可集合中的指定元素。另
外,List集合还有一个特点就是元素有序,即元素的存入顺序和取出顺序一致

List接口的特点

1.
它是一个元素存取有序的集合。例如,存元素的顺序是11、22、33。那么集合中,元素的存储就是按照11、22、33的顺序完成的。
2.
它是一个带有索引的集合,通过索引就可以精确的操作集合中的元素(与数组的索引是一个道理)。
3.
集合中可以有重复的元素,通过元素的 equals方法,来比较是否为重复的元素。

List接口中带索引的(特有)方法

// 1、将指定的元素,添加到该集合中的指定位置上。
public void add(int index, E element) // 2、返回集合中指定位置的元素。
public E get(int index) // 3、移除列表中指定位置的元素,返回的是被移除的元素。
public E remove(int index) // 4、用指定元素替换集合中指定位置的元素,返回值的更新前的元素。
public E set(int index, E element)

add()方法

说明:hasNext()方法,获取迭代器是否含有下一个元素(含有就返回true)

next()方法,获取迭代器下一个元素

import java.util.ArrayList;
import java.util.Iterator;
import java.util.List; public class DemoListAdd {
public static void main(String[] args) {
// 创建集合对象
List<String> arrayList = new ArrayList<>(); // 往集合的指定位置上添加给定的元素
arrayList.add(, "Index 0 元素");
arrayList.add(, "Index 1 元素");
arrayList.add(, "Index 2 元素"); // 遍历集合,查看结果
// 获取迭代器对象
Iterator<String> ite = arrayList.iterator();
// 输出
while (ite.hasNext()) {
System.out.println(
ite.next()
);
}
}
}
输出结果:
Index 0 元素
Index 1 元素
Index 2 元素

get()方法

import java.util.ArrayList;
import java.util.List; public class DemoListGet {
public static void main(String[] args) {
// 创建集合对象
List<String> arrayList = new ArrayList<>(); // 往集合的指定位置上添加给定的元素
arrayList.add(0, "Index 0 元素");
arrayList.add(1, "Index 1 元素");
arrayList.add(2, "Index 2 元素"); // 获取指定位置中集合的元素
String index0 = arrayList.get(0);
String index1 = arrayList.get(1);
String index2 = arrayList.get(2); // 输出
System.out.println("索引0处的元素:" + index0);
System.out.println("索引1处的元素:" + index1);
System.out.println("索引2处的元素:" + index2);
}
}
输出结果:
索引0处的元素:Index 0 元素
索引1处的元素:Index 1 元素
索引2处的元素:Index 2 元素

remove()方法

public class DemoListRemove {
public static void main(String[] args) {
// 创建集合对象
List<String> arrayList = new ArrayList<>(); // 往集合的指定位置上添加给定的元素
arrayList.add(0, "元素0");
arrayList.add(1, "元素1");
arrayList.add(2, "元素2");
// 查看集合
System.out.println("移除元素前:" + arrayList); // 删除集合中的部分元素
arrayList.remove(1);
System.out.println("移除元素1后:" + arrayList);
}
}
输出结果:
移除元素前:[元素0, 元素1, 元素2]
移除元素1后:[元素0, 元素2]

注意:移除一个元素以后,在被移除元素的后面的每个元素索引减1

set()方法

import java.util.ArrayList;
import java.util.List; public class DemoListSet {
public static void main(String[] args) {
// 创建集合对象
List<String> arrayList = new ArrayList<>(); // 往集合的指定位置上添加给定的元素
arrayList.add(0, "原始元素0");
arrayList.add(1, "原始元素1");
arrayList.add(2, "原始元素2");
// 查看集合
System.out.println("集合被替换元素前:" + arrayList); // set方法替换指定位置的元素
arrayList.set(0, "替换元素0");
System.out.println("集合被替换元素后:" + arrayList);
}
}
集合被替换元素前:[原始元素0, 原始元素1, 原始元素2]
集合被替换元素后:[替换元素0, 原始元素1, 原始元素2]

Java List集合的介绍与常用方法的更多相关文章

  1. list集合的介绍和常用方法

    List接口介绍 java.util.List接口继承自Collection接口,是单列集合的一个重要分支,习惯性地会将实现了List接口的对象成为List集合.在List集合中允许出现重复的元素,所 ...

  2. java基础集合底层介绍

    ArrayList.Vector.HashMap.HashTable.HashSet的默认初始容量.加载因子.扩容增量 这里要讨论这些常用的默认初始容量和扩容的原因是: 当底层实现涉及到扩容时,容器或 ...

  3. Java集合简单介绍

    再最前面分享一下我再学习集合时的方法: 1.首先了解各集合的定义和特点 2.集合的构造方法和常用方法(增删改查等) 3.了解集合使用的场景,再什么情况下使用什么类型的集合(关键是集合的特性) 4.了解 ...

  4. Java之集合初探(一)

    一.集合概述.区别 集合是一种容器,数组也是一种容器 在Java编程中,装各种各样的对象(引用类型)的叫做容器. 为什么出现集合类? 面向对象语言对事物的体现都是以对象的形式,所以为了方便对多个对象的 ...

  5. java基础---集合(1)

    一. 基本概念 集合.数组都是对多个数据进行存储操作的结构,简称Java容器 数组:长度确定,类型确定,对于添加.删除.插入等操作效率不高,元素有序可重复 Java中集合框架顶层框架是:java.ut ...

  6. 谈谈Java的集合组件

    让我们一起谈谈Java的集合组件 我们在使用Java的时候,都会遇到并使用到Java的集合.在这里通过自己的理解和网上的资源对Java的集合方面的使用做一个简单的讲解和总结. Java主要分为3个集合 ...

  7. Java基础——集合框架

    Java的集合框架是Java中很重要的一环,Java平台提供了一个全新的集合框架.“集合框架”主要由一组用来操作对象的接口组成.不同接口描述一组不同数据类型.Java平台的完整集合框架如下图所示: 上 ...

  8. Java学习-集合(转)

    在编写java程序中,我们最常用的除了八种基本数据类型,String对象外还有一个集合类,在我们的的程序中到处充斥着集合类的身影!java中集合大家族的成员实在是太丰富了,有常用的ArrayList. ...

  9. 浅谈Java的集合框架

    浅谈Java的集合框架 一.    初识集合 重所周知,Java有四大集合框架群,Set.List.Queue和Map.四种集合的关注点不同,Set 关注事物的唯一性,List 关注事物的索引列表,Q ...

随机推荐

  1. Mysql怎样控制replace替换的次数?

    我想把“ABC是ABC”替换成“123是ABC”,也就是找出第一个ABC替换成123,MYSQL命令应该怎么写? UPDATE data SET body=REPLACE(body, 'ABC', ' ...

  2. java 泛型接口和方法

    java5后,可以声明泛型接口,声明方式和声明泛型类是一样的. public interface IDAO<T>{} 泛型接口子类有两种方式: 直接在子类后申明泛型: 在子类实现的接口中给 ...

  3. 【u212】&&【t036】最大和

    Time Limit: 1 second Memory Limit: 128 MB [问题描述] N个数围成一圈,要求从中选择若干个连续的数(注意每个数最多只能选一次)加起来,问能形成的最大的和. [ ...

  4. 2019年7月20日针对iPhone7/7P有锁机的爆破限制

    背景 2019年7月20号苹果更改了激活策略,致使卡贴机一夜回到解放前,目前只能使用tmsi或者tmsi+iccid模式激活手机,但是缺点是移动联通信号真的不稳定,漏接电话,无法开启热点等等毛病.尤其 ...

  5. HashMap之红黑树

    红黑树的设计,相比 jdk1.7 的 HashMap 而言,jdk1.8 最重要的就是引入了红黑树的设计,当冲突的链表长度超过 8 个的时候,链表结构就会转为红黑树结构. 01.故事的起因 “ JDK ...

  6. 2019-9-24-dotnet-remoting-使用事件

    title author date CreateTime categories dotnet remoting 使用事件 lindexi 2019-09-24 15:39:26 +0800 2018- ...

  7. 2018.11.23 浪在ACM 集训队第六次测试赛

    2018.11.23 浪在ACM 集训队第六次测试赛 整理人:刘文胜 div 2: A: Jam的计数法 参考博客:[1] 万众 B:数列 参考博客: [1] C:摆花 参考博客: [1] D:文化之 ...

  8. Linux 内核 动态设备

    术语"热插拔"最普遍使用的意义产生于当讨论这样的事实时, 几乎所有的计算机系统现在 能够处理当系统有电时设备的出现或消失. 这非常不同于只是几年前的计算机系统, 那时 程序员知道他 ...

  9. Linux 内核kobject非 缺省属性

    在许多情况中, kobject 类型的 default_attrs 成员描述所有的 kobject 会拥有的属性. 但是那不是一个设计中的限制; 属性随意可以添加到和删除自 kojects. 如果你想 ...

  10. Linux 内核 ksets 之上的操作

    对于初始化和设置, ksets 有一个接口非常类似于 kobjects. 下列函数存在: void kset_init(struct kset *kset); int kset_add(struct ...