zoukankan      html  css  js  c++  java
  • 集合类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

  • 相关阅读:
    从上亿数据中抽取千万数据只需10分钟内
    当硬件成为瓶颈时怎么提高数据仓库的加载?
    监控logshipping 流量
    MSSQLMiRROR
    读取STGMEDIUM中的数据
    一个基本算法题暴露出来的C++基础不扎实
    C++对象模型学习
    从微观看chrome 之一:Singleton<T> 范型类
    从微观看chrome 之二:围绕Profile的ProfileService系统
    DevC++配置问题
  • 原文地址:https://www.cnblogs.com/arxk/p/5262503.html
Copyright © 2011-2022 走看看