• java中集合类中Collection接口中的List接口的常用方法熟悉


    1:集合类,在java语言中的java.util包提供了一些集合类,这些集合类又被称作容器。

    2:区别集合类和数组。(1)数组的长度是固定的,集合的长度是可变的。(2)数组是用来存放基本数据类型的,集合是用来存放对象的引用。

    3 : 常用的集合有List集合,Set集合,Map集合。其中List集合和Set集合实现Collection接口。

    4:Collection接口是层次结构中的根接口,构成Collection的单位,被称为元素。Collection接口通常不能直接使用,但是该接口提供了添加和删除元素的,管理数据的方法。由于List接口和Set接口都实现了Collection接口,因此这些方法对List集合和Set集合是通用的。

    5:List集合是列表类型,以线性方式存储对象,因此可以通过对象的索引来操作对象。

    6:List集合中的add(in index,Object obj)方法,用来向集合中的指定索引位置添加对象,集合的索引位置从0开始,其他对象的索引位置相对向后移动一位。

    7:List集合中的set(int index,E element)方法用指定的元素替换列表中的指定位置的元素,返回以前在指定位置的元素。

    案例如下,创建集合对象,并向集合中添加元素,通过Set方法修改集合中的元素,再通过add()方法向集合中添加元素,都是通过迭代器遍历集合元素的。

     1 package com.ning;
     2 
     3 import java.util.*;
     4 
     5 /**
     6  * 
     7  * @author biexiansheng
     8  *
     9  */
    10 public class Demo {
    11 
    12     public static void main(String[] args) {
    13         String a="A",b="B",c="C",d="D",e="E";//定义要插入集合的字符串对象
    14         List<String> list=new LinkedList<String>();//创建List集合
    15         list.add(a);//向集合中添加元素
    16         list.add(b);
    17         list.add(c);
    18         Iterator<String> iter=list.iterator();//创建集合的迭代器
    19         System.out.println("修改后 前集合 中的元素是:");
    20         while(iter.hasNext()){
    21             System.out.print(iter.next()+" ");
    22         }
    23         list.set(0,e);//将索引位置为0的对象修改为对象e
    24         list.set(2,d);//将索引位置为2的对象修改为对象d
    25         Iterator<String> it=list.iterator();//创建将集合对象修改后的迭代器对象
    26         System.out.println();
    27         System.out.println("修改后的集合中的元素是:");
    28         while(it.hasNext()){//循环获取集合中的元素
    29             System.out.print(it.next()+" ");
    30         }
    31     
    32         
    33     }
    34     
    35 }


     1 package com.ning;
     2 
     3 import java.util.*;
     4 
     5 public class Demo01 {
     6 
     7     public static void main(String[] args) {
     8         // TODO Auto-generated method stub
     9         String a="A",b="B",c="C",d="D",e="E",apple="apple";//要添加到集合中的对象
    10         List<String> list=new ArrayList<String>();//创建List集合对象
    11         list.add(a);//对象a的索引位置为0
    12         list.add(apple);//对象apple的索引位置为1
    13         list.add(b);
    14         list.add(apple);
    15         list.add(c);
    16         list.add(apple);
    17         list.add(d);
    18         list.remove(1);//remove(int index)用于移除集合中指定索引位置的对象
    19         System.out.println("ArrayList集合中的元素:"+list);
    20         System.out.println("apple第一次出现的索引位置:"+list.indexOf(apple));
    21         System.out.println("apple最后一次出现的索引位置:"+list.lastIndexOf(apple));
    22         System.out.println("b第一次出现的索引位置:"+list.indexOf(b));
    23         System.out.println("b最后一次出现的索引位置:"+list.lastIndexOf(b));
    24         System.out.println("***********************************");
    25         //System.out.println("get()获得指定索引位置的对象:"+list.get(0));
    26         
    27         
    28     }
    29 
    30 }

    此两句话的使用结果对比显示:

    list.remove(1);//remove(int index)用于移除集合中指定索引位置的对象

    System.out.println("get()获得指定索引位置的对象:"+list.get(0));


    1:要使用List集合,通常情况下需要声明为List类型,然后通过List接口的实现类来对集合进行实例化

    2:List集合的实现类常用的有ArrayList与LinkedList

    3:ArrayList类,该类实现了可变的数组,允许所有元素,包括null,可以根据索引位置对集合进行快速的随机访问。缺点是向指定的索引位置插入对象或者删除对象的速度比较慢。List<String> list=new ArrayList<String>();

    4:LinkedList类,该类采用链表结构保存对象,这种结构的优点是便于向集合中插入或者删除对象,经常需要向集合中插入,删除对象时,使用LinkedList类实现的List集合的效率较高,但对于随机访问集合中的对象,使用LinkedList类实现List集合的效率比较慢

    List<String> list=new LinkedList<String>();

    5:使用List集合时通常声明为List类型,可通过不同的实现类来实例化集合。

     1 package com.ning;
     2 
     3 import java.util.*;
     4 
     5 public class Demo04 {
     6 
     7     public static void main(String[] args) {
     8         // TODO Auto-generated method stub
     9         List list=new ArrayList();//创建集合对象
    10         int i=(int)(Math.random()*(list.size()-1));//获得0-2之间的随机数
    11         list.add("a");//向集合中添加元素
    12         list.add("b");
    13         list.add("c");
    14         System.out.println("随机获取数组中的元素:"+list.get(i));//
    15         list.remove(2);//将指定索引位置的元素从集合中移除
    16         System.out.println("将索引是'2'的元素从数组中移除后,数组中的元素是:");
    17         for(int j=0;j<list.size();j++){//循环遍历数组
    18             System.out.print(list.get(j)+" ");
    19         }
    20         
    21         
    22     }
    23 
    24 }


     1 package day13;
     2 
     3 import java.util.ArrayList;
     4 import java.util.List;
     5 import java.util.ListIterator;
     6 
     7 public class Demo03 {
     8 
     9     public static void main(String[] args) {
    10         // TODO Auto-generated method stub
    11         List list=new ArrayList();
    12         
    13         list.add("a");
    14         list.add("b");
    15         list.add("c");
    16         list.add("d");
    17         System.out.print(list+" ");
    18         System.out.println("集合的长度是:"+list.size());
    19         //list.remove("a");
    20         System.out.println();
    21         System.out.println("删除后集合的长度是:"+list.size());
    22         System.out.print(list+" ");
    23         System.out.println();
    24         for(int i=0;i<list.size();i++){
    25             System.out.print(list.get(i)+" ");
    26         }
    27         System.out.println();
    28         System.out.println("***********************");
    29         ListIterator it=list.listIterator();
    30         while(it.hasNext()){
    31             String str=(String)it.next();
    32             if("c".equals(str)){
    33                 it.add("aaa");
    34             }
    35         }
    36         System.out.println(list);
    37         
    38     }
    39 
    40 }

    此案例的主要是说了一下listIterator的用法,因为好多书上写的listIterator的解释很生硬。用来获得一个包所有对象的ListIterator列表迭代器。其实这个方法的用法就是在迭代的时候可以进行修改List集合。不然报这个错误。java.util.ConcurrentModificationException

    当方法检测到对象的并发修改,但不允许这种修改时,抛出此异常。


    至此,Collection接口下的List接口学习就差不多了,详细的还请自己下去参考资料,勤加练习,熟练应用和掌握。

  • 相关阅读:
    React在componentDidMount里面发送请求
    React 术语词汇表
    React里受控与非受控组件
    React和Vue等框架什么时候操作DOM
    【LeetCode】79. Word Search
    【LeetCode】91. Decode Ways
    【LeetCode】80. Remove Duplicates from Sorted Array II (2 solutions)
    【LeetCode】1. Two Sum
    【LeetCode】141. Linked List Cycle (2 solutions)
    【LeetCode】120. Triangle (3 solutions)
  • 原文地址:https://www.cnblogs.com/biehongli/p/5989290.html
Copyright © 2020-2023  润新知