7位数qq免费申请永久,百度ocpc怎么优化,东莞最新网站建设软件,重庆有什么好玩的游乐场作者简介#xff1a; zoro-1#xff0c;目前大二#xff0c;正在学习Java#xff0c;数据结构等 作者主页#xff1a; zoro-1的主页 欢迎大家点赞 #x1f44d; 收藏 ⭐ 加关注哦#xff01;#x1f496;#x1f496; 顺序表 概念Arraylist构造方法相关方法遍历操作 自… 作者简介 zoro-1目前大二正在学习Java数据结构等 作者主页 zoro-1的主页 欢迎大家点赞 收藏 ⭐ 加关注哦 顺序表 概念Arraylist构造方法相关方法遍历操作 自定义Arraylist接口实现类 概念 顺序表是用一段物理地址连续的存储单元依次存储数据元素的线性结构一般情况下采用数组存储。在数组上完成数据的增删查改。 Arraylist
构造方法
ArrayList是Java编程语言中的一个类用于实现可动态调整大小的数组。ArrayList提供了多种构造方法可以根据需要选择不同的构造方法。
以下是常用的ArrayList构造方法 ArrayList()创建一个空的ArrayList初始容量为10。 ArrayList(int initialCapacity)创建一个指定初始容量的ArrayList。 ArrayList(Collection? extends E c)创建一个包含指定元素的ArrayList。该ArrayList根据指定集合的迭代器顺序包含集合的所有元素。
示例
//创建一个空的ArrayList
ArrayListString list1 new ArrayListString();//创建一个指定初始容量的ArrayList
ArrayListInteger list2 new ArrayListInteger(20);//创建一个包含指定元素的ArrayList
ArrayListString list3 new ArrayListString(Arrays.asList(Apple, Banana, Orange));注意ArrayList是泛型类可以指定任意类型作为其元素类型。以上示例中list1和list2元素类型为String和Integerlist3元素类型为String。
相关方法
ArrayList 是 Java 中常用的一种集合类型具有动态的添加元素、随机访问、删除元素等基本功能具体方法如下
add(E e)在 List 的末尾添加一个元素。add(int index, E element)在指定的索引位置插入一个元素。remove(int index)根据索引删除一个元素。remove(Object o)删除第一个包含指定元素的元素。clear()清空 List 中的所有元素。get(int index)返回指定索引位置的元素。set(int index, E element)用指定元素替换指定位置的元素。isEmpty()如果 List 不包含任何元素则返回 true。size()返回 List 中元素的个数。contains(Object o)如果 List 包含指定的元素则返回 true。indexOf(Object o)返回第一个匹配元素的索引位置如果没有找到则返回 -1。subList(int fromIndex, int toIndex)返回 List 中从 fromIndex 开始到 toIndex - 1 结束不包括 toIndex 位置的一个子列表。
除此之外ArrayList 还实现了 Iterable、Collection 和 List 接口因此可以使用这些接口中定义的方法。例如可以使用 Collections 类的 sort(List list) 方法对 ArrayList 中的元素进行排序。ArrayList 是 Java 中常用的一种集合类型具有动态的添加元素、随机访问、删除元素等基本功能具体方法如下
遍历操作
增强for循环遍历
ArrayListString list new ArrayList();
// 添加元素
for(String element : list){System.out.println(element); // 输出元素
}迭代器遍历
ArrayListString list new ArrayList();
// 添加元素
IteratorString iterator list.iterator();
while(iterator.hasNext()){String element iterator.next();System.out.println(element); // 输出元素
}lambda表达式遍历Java 8及以后版本
ArrayListString list new ArrayList();
// 添加元素
list.forEach(element - System.out.println(element)); // 输出元素
1. 增强for循环遍历
java
ArrayListString list new ArrayList();
// 添加元素
for(String element : list){System.out.println(element); // 输出元素
}迭代器遍历
ArrayListString list new ArrayList();
// 添加元素
IteratorString iterator list.iterator();
while(iterator.hasNext()){String element iterator.next();System.out.println(element); // 输出元素
}lambda表达式遍历Java 8及以后版本
ArrayListString list new ArrayList();
// 添加元素
list.forEach(element - System.out.println(element)); // 输出元素自定义Arraylist
接口
public interface IList {//新增元素,默认在数组最后新增public void add(int data);// 在 pos 位置新增元素public void add(int pos, int data);// 判定是否包含某个元素public boolean contains(int toFind) ;// 查找某个元素对应的位置public int indexOf(int toFind);// 获取 pos 位置的元素public int get(int pos);// 给 pos 位置的元素设为 value 更新public void set(int pos, int value);//删除第一次出现的关键字keypublic void remove(int toRemove) ;// 获取顺序表长度public int size();// 清空顺序表public void clear() ;// 打印顺序表注意该方法并不是顺序表中的方法为了方便看测试结果给出的public void display();boolean isFull();
实现类
import java.util.Arrays;/*** Author 12629* Description*/
public class MyArrayList implements IList {public int[] elem ;public int usedSize;//0//顺序表的 默认大小public static final int DEFAULT_SIZE 10;public MyArrayList() {this.elem new int[DEFAULT_SIZE];}public MyArrayList(int capacity) {this.elem new int[capacity];}/*** 遍历顺序表当中的元素*/Overridepublic void display() {for (int i 0; i this.usedSize; i) {System.out.print(this.elem[i] );}System.out.println();}Overridepublic void add(int data) {checkCapacity();this.elem[this.usedSize] data;this.usedSize;}Overridepublic boolean isFull() {/*if(usedSize elem.length) {return true;}return false;*/return usedSize elem.length;}Overridepublic void add(int pos, int data) {try {checkPosOnAdd(pos);}catch (PosIllegality e) {e.printStackTrace();return;}checkCapacity();//1、从最后一个有效的数据开始往后移动 //2、当i pos 就结束for (int i usedSize-1; i pos; i--) {elem[i1] elem[i];}//3、存放元素到pos 位置elem[pos] data;//4、usedSize;usedSize;}/*** 检查pos的合法性*/private void checkPosOnAdd(int pos) throws PosIllegality{if(pos 0 || pos usedSize) {System.out.println(不符合法);throw new PosIllegality(插入元素下标异常: pos);}}private void checkCapacity() {if(isFull()) {//扩容elem Arrays.copyOf(elem,elem.length*2);}}Overridepublic boolean contains(int toFind) {if(isEmpty()) {return false;}for (int i 0; i usedSize; i) {//如果是查找引用数据类型 一定记住 重写方法if(elem[i] toFind) {return true;}}return false;}public boolean isEmpty() {return usedSize 0;}Overridepublic int indexOf(int toFind) {if(isEmpty()) {return -1;}for (int i 0; i usedSize; i) {//如果是查找引用数据类型 一定记住 重写方法if(elem[i] toFind) {return i;}}return -1;}Overridepublic int get(int pos) throws MyArrayListEmpty{checkPosOnGetAndSet(pos);if(isEmpty()) {throw new MyArrayListEmpty(获取指定下标元素时 顺序表为空);}return elem[pos];}private void checkPosOnGetAndSet(int pos) throws PosIllegality{if(pos 0 || pos usedSize) {System.out.println(不符合法);throw new PosIllegality(获取指定下标的元素异常: pos);}}Overridepublic void set(int pos, int value) {checkPosOnGetAndSet(pos);elem[pos] value;}Overridepublic void remove(int toRemove) {int index indexOf(toRemove);if(index -1) {System.out.println(没有这个数字);return;}for(int i index; i usedSize-1;i) {elem[i] elem[i1];}usedSize--;}Overridepublic int size() {return this.usedSize;}Overridepublic void clear() {this.usedSize 0;}
}今天的分享到这就结束了记得三连哦谢谢大家支持