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();