java---顺序表

一、顺序表简介

  • 顺序表中,元素与元素之间处在连续内存空间上

  • java中顺序表的实现:—专门的泛型类ArrayList

  • 数组与顺序表的区别:
    ------数组是一个顺序表的实现(即顺序表往往是基于数组实现的)
    ------数组支持的操作:取下标+取长度
    ------ ArrayList支持的操作:取下标+取长度+查找元素下标+插入元素+删除元素…
    ------java中除了数组,其他东西都无法方括号[]取下标

  • ArrayList支持的核心操作:增删改查

  • ArrayList是实现List接口的类,就是把List中的这些抽象方法一一实现

  • arrayList是可变对象,其中元素可以修改

二、基本操作
1.创建一个ArrayList实例

        //ArrayList是一个泛型类,<>中要传入一个泛型参数
        ArrayList<String> arrayList=new ArrayList<>();
        //直接打印arrayList--->空顺序表--->[]
        System.out.println(arrayList);

2.获取ArrayList长度

arrayList.size();

3.往ArrayList中添加元素

        //(1)添加至末尾
        arrayList.add("c");
        //(2)往指定位置添加元素
        //方法中第一个参数为插入的位置,第二个参数为插入内容
        arrayList.add(0,"java");

4.删除元素

//(1)按位置删除
        arrayList.remove(1);
        //(2)按值删除,如果有重复,只删除最左边的
        //若表为[2,3,4,5],执行arrayList.remove(2),这样是按位置删除
        //此时优先匹配到更接近的remove(int index)版本
       // arrayList.remove("java");
        System.out.println(arrayList);

5.查找元素

        //(1)返回i是否有该元素
        boolean ret=arrayList.contains("c");
        System.out.println(ret);
        //(2)查找位置,若不存在,返回-1
        int index=arrayList.indexOf("c");
        System.out.println(index);

6.获取/修改元素

//getter/setter方法
        String elem=arrayList.get(0);
        System.out.println(elem);
        arrayList.set(0,"c++");
        System.out.println(arrayList);

7.遍历操作

       //(1)下标遍历
        for(int i=0;i<arrayList.size();i++){
            System.out.println(arrayList.get(i));
        }

        //(2)通过迭代器进行遍历
        //迭代器---是一个泛型类,用来遍历集合类
        //先通过iterator方法获取到迭代器对象
        Iterator<String> iterator=arrayList.iterator();
        //再通过while循环来遍历
        //获取到当前元素并返回,同时光标指向下一位置
        while(iterator.hasNext()){  //()中是判断是否到达末尾,未到达就依次取元素
            String e=iterator.next();
            System.out.println(e);
        }

        //(3)直接使用for-each来遍历
        for(String e:arrayList){
            System.out.println(e);
        }

三、顺序表中多态的体现

import java.util.List;
//向上转型
 List<String> arrayList=new ArrayList<>();
//以上写法只改一处便可将顺序表改为链表(下面代码不用改)
 List<String> arrayList=new LinkedList<>();

你可能感兴趣的:(笔记,java,数据结构)