ArrayList

Arraylist是list的实现类继承的abstractList的子类。既有数组特征也有链表特征是一个动态数组。
ArrayList有三种构造方法。

  1. 无参构造 ArrayList arrayList =new ArrayList(); //无参构造 创建一个空的链表
  2. 带有初始容量的构造 ArrayList arrayList1 =new ArrayList(20);
  3. 将一个链表作为参数,构造一个带有指定链表数据的新链表。 ArrayList arrayList2 =new ArrayList(arrayList1);

ArrayList 中E 的类型只能为引用型参数不能为基本数据类型。

ArrayList 常用方法
增加元素到链表
boolean add(Element e)增加元素到链表尾端
void add(int index,Element e) 增加元素到指定位置
删除链表
void remove(int index) 删除指定位置的数据
void clear() 删除整个链表 具体实现就是通过迭代器执行上面的remove 方法。
protectde removeRange(int start,int end)删除指定一串位置的数据,不过其受保护类型无法调用只能通过子类继承重写方法才能使用。
修改数据
E set(int index,Element e) 其返回值为index 处的数据 ,该方法是为了替换查到的数据。
打印链表数据
String toString() 打印链表的数据内容
查找相关方法
boolean contains(Object o) 判断是否存在对象o
int indexOf(Object o) 返回对象第一次O的位置 如果小于0则不存在
int lastindexof(Object o)查询链表中莫元素最后出现的位置
boolean isEmpty()返回true表示链表中没有任何元素.
int size()
返回链表长度(链表包含元素的个数).

代码
import java.util.ArrayList;
import java.util.Iterator;
import java.util.LinkedList;
import java.util.Random;

public class ArrayListTest {
public static void main(String[] args)
{
//该demo主要是为了了解list 以及list继承的collection接口
//以及list的实现类的各种具体用法
//l实现类有LinkedList ArrayList Vector
ArrayList arrayList =new ArrayList(); //无参构造 创建一个空的链表
//ArrayList arrayList1 =new ArrayList();
//ArrayList<>不支持基本数据类型只支持引用数据类型具体为什么?
//ArrayList<> 三种构造方法
ArrayList arrayList1 =new ArrayList(20);//构造一个带有初始容量的链表
//String a[]={“12331”};
// ArrayList arrayList2 =new ArrayList(a);错误
ArrayList arrayList2 =new ArrayList(arrayList1);
Random r = new Random();
System.out.println(r.nextInt(5));
ArrayList as =new ArrayList();
as.add(“my”);
as.add(“my1”);
as.add(“my2”);as.add(“my3”);
as.add(“my4”);

    System.out.println(as.toString());
    as.add(1,"index");//index 插入的是按照0开始
    System.out.println(as.toString());
    System.out.println(as.remove(2));
   // as.removeRange(1,2);  这个方法是被保护的removeRange 删除链表中从某一个位置得到结束位置的元素 其类型是protectde被保护的类型
    String a231 =new String("12345");
    System.out.println(a231.substring(1,3));
    System.out.println(as.get(2));
  // String[] arr =(String[])as.toArray();如何转化为字符串类型
    String[] arr =as.toArray(new String[as.size()]);
   for(String str: arr)
       System.out.printf(str+" ");
    System.out.println();

    System.out.println(as.set(2,"set"));
    System.out.println(as.toString());
    //set 的返回值是指定该位置的数值  类似返回查询结果 如何替换
    as.add("my3");
    System.out.println(as.toString());
    System.out.println(as.contains("my2"));
    System.out.println(as.contains("set"));
    System.out.println(as.indexOf("set"));
    System.out.println(as.indexOf("my2"));
    System.out.println(as.lastIndexOf("my3"));
    // boolean contains(Object o) 判断是否存在对象o
    // int indexOf(Object o)  返回对象第一次O的位置 如果小于0则不存在
    //查询链表中莫元素最后出现的位置

    //查询链表中莫一个出现的元素
    for(String b:as)
        System.out.println(b);
    ArrayList<Integer> aint =new ArrayList<Integer>();
    for(int i=0;i<as.size();i++)
        if(as.get(i).equals("my3"))
            aint.add(i);
    System.out.println(aint.toString());




}

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值