zoukankan      html  css  js  c++  java
  • 集合类

    集合类的概述

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

    集合类接口的常用方法

    List接口的常用方法

    List接口继承了Collection接口,因此包含Collection中的所有方法。又因为List是列表类型,所以List接口还提供了一些适合于自身的常用方法。

    如图:

    从图可看出,List接口中适合于自身的方法都与索引有关。由于List集合以线性方式存储对象,因此可以通过对象的索引来操作对象。

    在List集合的众多方法中,add(int index,Object obj)方法与set(int index,Object obj)方法不容易区分。

    List集合中可以包含重复的对象,若要获取重复对象第一次出现的索引位置可以使用indexOf()方法,要获取重复对象最后一次出现的索引位置可以使用lastindexOf()方法。

    上课讲义:

    package array;
    import java.util.*;
    public class Test1 {
    
        public static void main(String[] args) {
            // TODO 自动生成的方法存根
    
            //创建List
            //1.指明数据类型,不需要指定大小
            //<> 表示泛型
            List<String>list=new ArrayList<String>();
            
            List<Object>list1=new ArrayList<Object>();
            //泛型区别
            list1.add(1);
            list.add("");
            
            
            
            //添加元素
            list.add("a"); 
            list.add("b");
            list.add("c");
            //长度   size();
            System.out.println("list长度="+list.size());//尺寸
            //取出元素   get();
            System.out.println("按索引0取出get(0)="+list.get(0));
            System.out.println("按索引1取出get(1)="+list.get(1));
            System.out.println("按索引2取出get(2)="+list.get(2));
            //遍历元素
              //方法一
            for(int i=0;i<list.size();i++)
            {
                System.out.print(list.get(i)+" ");
            }
            System.out.println("遍历方式二");
              //方法二
            for(String s:list)
            {
                System.out.print(s+" ");
            }
            System.out.println();
              //方法三  迭代器
                //获取集合的迭代器,迭代器一开始是在集合的最上面
                    //泛型
            Iterator<String> it=list.iterator();
            //先判断看看有内有内容(试探)
            while(it.hasNext())
            {
                //取出
                String t=it.next();
                //如果t=b  移除
                if(t.equals("b"))
                {
                it.remove();
                }
                System.out.println("迭代器="+t);
            }
    //        //移除
    ////        list.clear();//全部移除  
    ////        System.out.println(list.size());  
    //        list.remove(0);//单个移除
    //        System.out.println("单个移除后长度="+list.size());
    //        System.out.println("按索引0取出get(0)="+list.get(0));
    //        System.out.println("按索引1取出get(1)="+list.get(1));
    //        for(String s:list)
    //        {
    //            System.out.print(s+" ");
    //        }
    //        System.out.println();
    //        //插入
    //        System.out.println("0索引插入A后");
    //        list.add(0, "A");
    //        for(String s:list)
    //        {
    //            System.out.print(s+" ");
    //        }
    //        //修改
    //        System.out.println();
    //        System.out.println("输入索引,修改");
    //        list.set(1, "B");
    //        list.set(2, "C");
    //        for(String s:list)
    //        {
    //            System.out.print(s+" ");
    //        }
    //        //查找字符串
    //        System.out.println();
    //        System.out.println("B的位置="+list.indexOf("B"));
            
            
            
            
        }
    
    }
    上课讲义:

    迭代器:

    大纲:

    迭代器的创建和使用:

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

    ***hasNext();如果仍有元素可以迭代,则返回true。

    ***next();返回迭代的下一个元素。

    ***remove();从迭代器指向的collection中移除迭代器返回的最后一个元素(可选操作)。

  • 相关阅读:
    导包路径
    django导入环境变量 Please specify Django project root directory
    替换django的user模型,mysql迁移表报错 django.db.migrations.exceptions.InconsistentMigrationHistory: Migration admin.0001_initial is applied before its dependen cy user.0001_initial on database 'default'.
    解决Chrome调试(debugger)
    check the manual that corresponds to your MySQL server version for the right syntax to use near 'order) values ('徐小波','XuXiaoB','男','1',' at line 1")
    MySQL命令(其三)
    MySQL操作命令(其二)
    MySQL命令(其一)
    [POJ2559]Largest Rectangle in a Histogram (栈)
    [HDU4864]Task (贪心)
  • 原文地址:https://www.cnblogs.com/panyiquan/p/5263574.html
Copyright © 2011-2022 走看看