集合类List

一.集合类

    Java语言的java.util包中提供了一些集合类,这些集合类又被称为容器。提到容器不难会想到数组,集合类与数组的不同之处是,数组的长度是固定的,集合的长度是可变的;数组用来存放基本类型的数据,集合用来存放对象的引用。常用的集合有List集合、Set集合、Map集合,其实List与Set实现了Collection接口。各接口还提供了不同的实现类。

    集合类的继承关系如下:

       

二.集合类接口的常用方法

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

    1.List接口

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

  (1)ArrayList类

         该类实现了可变的数组,允许所有元素,包括null。可以根据索引位置对集合进行快速的随机访问。缺点是向指定的索引位置插入对象或删除对象的速度较慢。 

          语法格式为:            List<数据类型> 集合名=new ArrayList<数据类型>();

 (2)LinkedList类

         该类采用链表结构保存对象。这种结构的优点是便于向集合中插入和删除对象,经常需要向集合中插入、删除对象时,使用LinkedList类实现的List集合的效率较好;但对于随机访问集合中的对象,使用LinkedList类实现List集合的速度较慢。

          语法格式为:            List<数据类型> 集合名=new LinkedList<数据类型>();

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

     注:List集合以线性方式存储对象的。

 (3)List方法

        1.add(数据)  添加;2.size()获取长度;3.get(索引)  获取元素;4.遍历(for、foreach);5.remover(索引值) 移除指定位置的元素;6.clean() 全部移除;7.set(索引值,新的值)  修改;

        8.add(索引值,数据)  向指定的位置添加数据;9.indexOf(数据) 返回数据的索引值,如果未找到返回:-1。

   (4)迭代器

          Iterator 迭代器为集合提供的一种遍历方式,支持泛型。

          语法格式为:               Interator<数据类型>名称=集合名.interotor();

         利用Iterator接口创建迭代器,  Iterator接口位于java.util包下。  Iterator接口中有3个方法。

         (1)hasNext():返回是否可以继续迭代;

         (2)next():返回迭代的下一个元素;

         (3)remove():从迭代器指向的collection中移除迭代器返回的最后一个元素(可选操作),即移除迭代器当前的错误。

List的用法操作集锦:

 1 package org.hanqi.array;
 2 
 3 import java.util.*;
 4 
 5 public class Test1 {
 6 
 7     public static void main(String[] args) {
 8 
 9 
10         //创建List
11         //1.指明数据类型,不需要指定大小
12         //<>表示 泛型
13         List<String>  list=new ArrayList<String>();
14         
15         List<Object> list1=new ArrayList<Object>();
16         
17         list1.add(1);
18         
19         //list1.add()
20         
21         list.add("");
22         
23 
24         //添加
25         list.add("a");
26         list.add("b");
27         list.add("c");
28         
29         //长度
30         System.out.println("List的长度="+list.size());
31         
32         //取出
33         System.out.println("按索引0取出get(0)="+list.get(0));
34         
35         System.out.println("遍历方式1");
36         
37         //遍历
38         for (int i=0;i<list.size();i++)
39         {
40             System.out.println(list.get(i));
41         }
42         
43         
44         list.remove(0);//部分移除
45         
46         System.out.println("遍历方式2");
47         
48         for(String s:list)
49         {
50             System.out.println(s);
51         }
52         
53         System.out.println("遍历方式3:迭代器");
54         
55         //获取集合的迭代器,迭代器一开始是在集合的最上面
56         Iterator<String>  it=list.iterator();
57         
58         //试探
59         while (it.hasNext())
60         {
61             String t=it.next();
62             
63             if(t.equals("b"))
64             {
65             it.remove();
66             }
67             
68             System.out.println("迭代器="+t);
69         }
70         
71         //移除
72 //        list.clear();
73 
74         System.out.println("List的长度="+list.size());
75         
76         //插入
77         
78         list.add(0,"A");
79         
80         
81         
82         //修改
83         list.set(1,"B");
84         list.set(2,"C");
85         
86         for(String s:list)
87         {
88             System.out.println(s);
89         }
90         
91         System.out.println("B="+list.indexOf("B"));
92     }
93 
94 }
List

原文地址:https://www.cnblogs.com/arxk/p/5262503.html