首页 > 其他分享 >Collection接口中的List接口

Collection接口中的List接口

时间:2024-03-06 15:26:47浏览次数:33  
标签:java List list1 System Collection add 接口 println out

List

1:

Collection(接口):
    - List 元素有序且允许重复,集合具有索引的概念(接口)
        - ArrayList(具体子类)
    - Set  元素无序且唯一,集合没有索引
package com.shujia.day12;

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

public class ListDemo1 {
    public static void main(String[] args) {
        //1. 创建集合对象
        List list1 = new ArrayList();

        //2. 创建并添加元素
        list1.add("java");
        list1.add("hadoop");
        list1.add("hive");
        list1.add("hbase");
        list1.add("数据采集");

        //3. 遍历
        Iterator iterator = list1.iterator();
        while (iterator.hasNext()){
            System.out.println(iterator.next());
        }
    }
}


2:

因为List相关集合具备了索引的概念,所以List集合它里面就会出现与索引相关的方法
List集合中的元素具有有序的特点,这里的有序不是指排序,而是指的是存储和取出的顺序一致。
void add(int index,E element)
E remove(int index)
E get(int index)
E set(int index,E element)
ListIterator listIterator()
package com.shujia.day12;
import java.util.ListIterator;
import java.util.List;
import java.util.ArrayList;

public class ListDemo2 {
    public static void main(String[] args) {
        //创建集合对象
        List list1=new ArrayList();

        list1.add("java");
        list1.add("hadoop");
        list1.add("hive");
        list1.add("apple");

        System.out.println(list1);
        System.out.println("=====================");

        //void add(int index,E element)
        list1.add(1,"mysql");
        System.out.println(list1);
        System.out.println("=====================");

        //E remove(int index) 指定索引删除元素,返回被删除的元素值
//        Object o=list1.remove(10);//IndexOutOfBoundsException
        Object o= list1.remove(2);
        System.out.println(list1);
        System.out.println("=====================");

        //E get(int index) 指定索引获取索引位置上的元素
        Object o1=list1.get(2);
        System.out.println(o1);
        System.out.println("=====================");

        //E set(int index,E element)  通过索引设置元素值,返回的是初始的元素值
        Object o2=list1.set(3,"data");
        System.out.println(o2);
        System.out.println("=====================");

        //ListIterator listIterator()  列表迭代器,List集合特有的迭代器
        ListIterator listIterator= list1.listIterator();
        while(listIterator.hasNext()){
            System.out.println(listIterator.next());
        }

        //无论是ListIterator迭代器,还是Iterator迭代器,指针只有一个,而且最开始的时候,在迭代器的最左边
        //所以要想反向遍历,得先正向遍历一遍,将指针移动到最右边
        while (listIterator.hasPrevious()){
            System.out.println(listIterator.previous());
        }
    }
}

3:

在一个存储字符串的集合中,查找"java"这个元素,如果找到了,就将"flink"添加到集合中,在哪添加无所谓。

ConcurrentModificationException 并发修改异常
原因是,在遍历迭代器的时候,集合的长度发生了变化,而迭代器不知道,长度不一致,报错。
如何避免这样的问题。
迭代器遍历,迭代器修改,集合遍历,集合修改
package com.shujia.day12;
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
import java.util.ListIterator;

public class ListDemo3 {
    public static void main(String[] args) {
        List list1=new ArrayList();

        list1.add("java");
        list1.add("hadoop");
        list1.add("hive");
        list1.add("apple");

        System.out.println(list1);

        //方式1:
        Object[] arr=list1.toArray();
        for (int i=0;i< arr.length;i++){
            String s=(String) arr[i];
            if ("java".equals(s)){
                list1.add("flink");
            }
        }
        System.out.println(list1);
//        Iterator iterator= list1.iterator();
//        while(iterator.hasNext()){
////            System.out.println(iterator.next());
//            Object next=iterator.next();
//            String s=(String) next;
//            if("java".equals(s)){
//                list1.add("flink");
//            }
//        }
//        System.out.println(list1);

        //方式2:
        ListIterator listIterator= list1.listIterator();
        while (listIterator.hasNext()){
            String s1=(String) listIterator.next();
            if ("hadoop".equals(s1)){
                listIterator.add("maven");//将元素添加到指定元素的后一位
            }
        }
        System.out.println(list1);
    }
}

标签:java,List,list1,System,Collection,add,接口,println,out
From: https://www.cnblogs.com/peculiar/p/18056661

相关文章

  • Collection接口中的List接口中的Vector具体类
    VectorCollection(接口)-List(接口)-ArrayList(实现类)底层数据结构是数组,查询快,增删慢,线程是不安全的,效率高。-Vector(实现类)底层数据结构是数组,查询快,增删慢,线程是安全的,效率低。(即使这个是线程安全的,我们今后也不用,后面我们会将不安全的ArrayLis......
  • Collection接口中的ArrryList具体的类
    Collecction接口目前为止学习的容器有1.数组:长度一旦确定就不能更改,对于同一个数组中,既可以是存放基本数据类型元素的数组,也可以是存放引用数据类型数组2.StringBuffer:无论存放什么类型的元素,一旦进入到StringBuffer,都是以字符类型的形式存储,长度可以改变3.集合:结合了数组和长......
  • Collecction接口
    Collecction接口目前为止学习的容器有1.数组:长度一旦确定就不能更改,对于同一个数组中,既可以是存放基本数据类型元素的数组,也可以是存放引用数据类型数组2.StringBuffer:无论存放什么类型的元素,一旦进入到StringBuffer,都是以字符类型的形式存储,长度可以改变3.集合:结合了数组和长......
  • Iterator接口
    Iterator接口概述:对collection进行迭代的迭代器,依赖于集合而存在迭代器遍历是Collection集合所特有的遍历方式得是可遍历的对象packagecom.shujia.day11;importjava.util.ArrayList;importjava.util.Collection;importjava.util.Iterator;publicclassIteratorD......
  • 店小密芒果店长商品搬家API接口PHP Java C++
    随着电子商务的迅猛发展,淘宝作为中国最大的电商平台之一,拥有着海量的商品数据和用户行为数据。为了更好地整合资源、提高运营效率,淘宝开放了商品详情API数据接口,为商家和第三方开发者提供了丰富的功能与应用。一、淘宝商品详情API数据接口概述淘宝商品详情API数据接口是淘宝开放......
  • Java 中Stream接口介绍
    Java流操作Stream接口Stream接口的继承关系:BaseStream=......
  • List集合
    ListList集合的特点有序、可重复、有索引。Listremove重载方法的细节List的remove方法有两个案例一publicstaticvoidmain(String[]args){List<Integer>integers=newArrayList<Integer>();integers.add(1);integers.add(2);intege......
  • 获取企业裁判文书接口 - GetJudicialDocuments
     在如今的商业环境中,企业信息的准确性和可信度是非常重要的。尤其是在与其他公司进行合作或者与银行等金融机构进行业务往来时,对企业的背景和信用度有着更高的要求。那么如何有效地验证企业的信息是否真实可信呢?挖数据平台的获取企业裁判文书接口-GetJudicialDocuments将成为......
  • Java 8 Supplier函数式接口介绍及代码样例
    介绍供应商接口(SupplierInterface)是Java8引入的java.util.function包的一部分,用于在Java中实现函数式编程。它表示一个函数,该函数不接收任何参数,但会产生一个类型为T的值。T:表示结果的类型分配给Supplier类型对象的lambda表达式用于定义其get(),最终产生一个值。......
  • (21)Lazarus之FilterComboBox1过滤ShellListView1的文件名
    FilterComboBox1只过滤当前目录下的文件名,不过滤目录名,也不过滤子目录名拖一个FilterComboBox1,ShellListView1到界面上1]将FilterComboBox1的ShellListView设置为ShellListView12]添加过滤文件类型 3]还须设置ShellListView1的根目录Root ......