List()接口

简介: List()接口

List接口: 有序、有下标、元素可以重复

方法:

1、单个元素的添加、删除

void add(int index,Object obj) //指定index位置插入对象o
boolean add(Object obj) //列表的尾部添加指定的对象
object remove(int index) //移除列表中指定元素的对象
boolean remove(Object obj) //移除列表中第一次出现的指定对象

2、组元素的添加、删除

boolean addAll(Collection col) //将列表col所有元素添加到列表的结尾
boolean addAll(int index,Collection col) //将集合col添加到列表index的位置
boolean removeAll(Collection col) //移除列表col包含的所有元素
boolean retainAll(Collection col) //保留col中的所有元素
boolean clear()   //清空列表

3、元素查询

boolean contains(Object obj) //判断列表是否包含obj对象
Object get(int index)   //获取指定索引处的元素
int index(Object obj) //返回指定对象在列表中第一次出现的索引
int size()    //获取列表中元素的个数

4、组查询

boolean containsAll(Collection col)   //判断col中所有的元素是否包含在列表中
Iterator iterator() //获取列表的一个迭代器,遍历列表
ListIterator listIterator()  //获取列表的一个列表迭代器
ListIterator listIterator(int index) //获取从指定位置开始的列表迭代器

egg:以[ 华为,苹果,三星,大哥大]列表为例

package Collection接口;
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
import java.util.ListIterator;
/**
 * List的特点:1、有序 有下表
 *            2、元素可以重复
 * @author AiY
 */
public class ListDemo {
    public static void main(String[] args) {
        //创建一个集合
        List list=new ArrayList();
        list.add("华为");
        list.add("苹果");
        list.add("三星");
        list.add("大哥大");
        System.out.println("元素的个数:"+list.size());
        System.out.println(list.toString());
        //删除元素
        //list.remove("大哥大");
        //list.remove(1);
        //System.out.println(list);
        //遍历
        System.out.println("---使用for遍历");
        for(int i=0;i<list.size();i++){
            System.out.println(list.get(i));
        }
        System.out.println("---使用增强for");
        for(Object object:list){
            System.out.println(object);
        }
        System.out.println("---使用迭代器");
        Iterator iterator=list.iterator();
        while(iterator.hasNext()){
            System.out.println(iterator.next());
        }
        System.out.println("---使用列表迭代器遍历");
        //列表迭代器可以增加元素、删除元素、获取元素或者元素脚标
        //也可以向前向后遍历
        ListIterator listIterator=list.listIterator();
        System.out.println("---从前往后遍历");
        while(listIterator.hasNext()){
            System.out.println(listIterator.nextIndex()+":"+listIterator.next());
        }
        System.out.println("---从后往前遍历");
        while(listIterator.hasPrevious()){
            System.out.println(listIterator.previousIndex()+":"+listIterator.previous());
        }
        System.out.println(list.contains("大哥大"));
        //索引下标为2的元素
        System.out.println(list.get(2));
        //清空
        list.clear();
        System.out.println(list.size());
    }
}

元素的个数:4
[华为, 苹果, 三星, 大哥大]
---使用for遍历
华为
苹果
三星
大哥大
---使用增强for
华为
苹果
三星
大哥大
---使用迭代器
华为
苹果
三星
大哥大
---使用列表迭代器遍历
---从前往后遍历
0:华为
1:苹果
2:三星
3:大哥大
---从后往前遍历
3:大哥大
2:三星
1:苹果
0:华为
true
三星
0

添加(1):sbulist 的用法是截取列表某一段,其中截取的包含左边,不包含右边

package Collection接口;

import java.util.ArrayList;
import java.util.List;

public class ExampleDemo {
    public static void main(String[] args) {
        List list=new ArrayList();
        list.add("关羽");
        list.add("张飞");
        list.add("赵云");
        list.add("黄盖");
        list.add("马超");
        System.out.println(list);
        List sbulist=list.subList(1,3);
        System.out.println(sbulist);
    }
}
[关羽, 张飞, 赵云, 黄盖, 马超]
[张飞, 赵云]

添加(2): 如果针对的列表是数字,且要删除某一个数字的话,使用list.remove(i),此时移除的是下标为i的数字,而非数字本身,这个时候就需要用另一方法1、使用Object类;2、使用Integer

package Collection接口;

import java.util.ArrayList;
import java.util.List;

public class ListDemo1 {
    public static void main(String[] args) {
        //创建
        List list=new ArrayList();
        for(int i=10;i<=60;i=i+10){
            list.add(i);
        }
        System.out.println("元素个数"+list.size()+":"+list);
        //list.remove(10);  //删除的只是下标10的元素,而不是10
        //删除指定下标的两种方法1、使用object2、使用Integer
        list.remove((Object)10);
        list.remove(new Integer(20));
        System.out.println("元素个数"+list.size()+":"+list);
    }
}
元素个数6:[10, 20, 30, 40, 50, 60]
元素个数4:[30, 40, 50, 60]


相关文章
|
4月前
|
存储 Java 测试技术
滚雪球学Java(57):解密Java中List接口底层实现原理
【6月更文挑战第11天】🏆本文收录于「滚雪球学Java」专栏,专业攻坚指数级提升,希望能够助你一臂之力,帮你早日登顶实现财富自由🚀;同时,欢迎大家关注&&收藏&&订阅!持续更新中,up!up!up!!
39 2
滚雪球学Java(57):解密Java中List接口底层实现原理
|
3月前
|
文字识别 Java
文本,文字识别07,SpringBoot服务开发-入参和返回值,编写接口的时候,要注意识别的文字返回的是多行,因此必须是List集合,Bean层,及实体类的搭建
文本,文字识别07,SpringBoot服务开发-入参和返回值,编写接口的时候,要注意识别的文字返回的是多行,因此必须是List集合,Bean层,及实体类的搭建
|
3月前
|
前端开发
若依修改,配置了一个接口路径出现了,如何放通接口{ “msg“: “请求访问:/code/list,认证失败,无法访问系统资源“, “code“: 401}
若依修改,配置了一个接口路径出现了,如何放通接口{ “msg“: “请求访问:/code/list,认证失败,无法访问系统资源“, “code“: 401}
|
5月前
|
存储 安全 Java
Java的List、Set、Queue等接口及其实现类的技术性文章
Java的List、Set、Queue等接口及其实现类的技术性文章
32 1
|
5月前
|
Java 索引
【JAVA学习之路 | 进阶篇】List接口常用方法
【JAVA学习之路 | 进阶篇】List接口常用方法
|
5月前
|
存储 安全 Java
Java list set map等接口及其实现类
Java list set map等接口及其实现类
|
5月前
|
存储 算法 C语言
从C语言到C++_16(list的介绍和常用接口函数)
从C语言到C++_16(list的介绍和常用接口函数)
53 0
|
5月前
|
存储 安全 算法
Java一分钟之-Java集合框架入门:List接口与ArrayList
【5月更文挑战第10天】本文介绍了Java集合框架中的`List`接口和`ArrayList`实现类。`List`是有序集合,支持元素重复并能按索引访问。核心方法包括添加、删除、获取和设置元素。`ArrayList`基于动态数组,提供高效随机访问和自动扩容,但非线程安全。文章讨论了三个常见问题:索引越界、遍历时修改集合和并发修改,并给出避免策略。通过示例代码展示了基本操作和安全遍历删除。理解并正确使用`List`和`ArrayList`能提升程序效率和稳定性。
43 0
|
5月前
|
存储 编译器 C++
【C++/STL】list(常见接口、模拟实现、反向迭代器、)
【C++/STL】list(常见接口、模拟实现、反向迭代器、)
41 0
|
存储 算法 Java
java集合框架------Collection接口,List接口与实现类,Set接口与实现类
java集合框架------Collection接口,List接口与实现类,Set接口与实现类