java笔记整理:关于ArrayList的基本操作

本文深入讲解ArrayList和LinkedList两种数据结构的构造方法、常用操作及迭代器使用。对比两种列表的特性,如ArrayList的尾插数据、LinkedList的首尾操作,并探讨自定义类的相等性比较方法equals的覆写。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

ArrayList 常用操作
构造方法
 ArrayList ()  ;                 构造空的顺序表,容量是默认容量
 ArrayList (int capacity);   构造空的顺序表,容量是capacity
 ArrayList (Collection c);   构造一个顺序表,把c中的所有元素放到顺序表
List<Integer> origin=Array.asList(1,2,3,4,5);
ArrayList<Integer> list=new ArrayList<>(origin);


常用方法
add(E element)   尾插数据
add ( int index,E element) 把元素插入到index位置
remove(Object o);  删除顺序表中的第一个o
remove(int index);  删除顺序表中的下标index位置

contains(E e);    判断e在不在顺序表中(查找)
indexOf(E e);     从前数下标
lastIndexOf(E e);   从后数下标
get(int Index);   返回下标元素
set(int Index,E e);    更改下标元素

java.util.Random
//伪随机
//种子固定的情况下,随机产生是固定的
//为了避免随机固定,引入时间作为种子
//Rogue-like
Random();
Random(long seed);
nextInt(int bound);   [0,bound]


java中,自定义类的相等性比较
1)对于引用类型
  ==判断的不是对象相等,而是引用相等,两个引用指向同一个对象
2)Object类中有一个equals方法,在自定义类中覆写该方法
   去调用该对象的equals方法

自定义对象时:
  1、toString推荐都覆写;
  2、equals推荐都覆写;

String s=List.get(i);    //想象成String s=list[i];
list.set(j,p);                 //想象成 list[j]=p;
在已经实现的equals的基础上  
看A手中有没有红心A,如果没有,任何都不干,如果有,删除掉红心A
PokeCard c=["红心A"]
 if (A.contains(c)){     //equals
    A.remove(c)          //equals
}

迭代器:  Iterator
 boolean hasNext();
 E next();
 void remove();
 
了解:
Iterable和foreach 关系
          for  (int a: 容器){
             }
只要实现了Iterable 接口,就可以被foreach语法使用了
迭代器的语法糖

1、泛型的基本使用
2、包装类的使用
3、ArrayList 的常用方法的使用(重点)
4、ArrayList的迭代器(Iterator/Iterable/ListIterator)
5、关于对象的相等性比较 equals方法(重点)

LinkedList 链表   实现 List/Deque

构造方法:
LinkedList();
LinkedList(Collection c);

//同 ArrayList相同的不列出
void addFirst(E e);
void addLast(E e);

空的话 
抛异常                       返回null
E getFirst();   vs        E peekFirst()  ;
E getLast();   vs        E peekLast();        //E peek(); 取而不删
void push(E ,e);       E pop();
 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值