java自定义数组_Java自定义数组

这篇博客介绍了一个自定义的Java数组类`MyArrayList`,它实现了类似JavaScript数组的各种方法,如排序、连接、删除、剪切等。类中包含多个方法,如`join()`、`toString()`、`add()`、`pop()`、`splice()`等,用于数组的增删改查和转换。此外,还提供了数组排序和连接多个数组的功能。
摘要由CSDN通过智能技术生成

前言

今天有点无聊,写了一个自定义数组,里边主要实现很多js中数组的方法,例如:排序、数组连接、删除、剪切。算是加深对java的一些基础操作的印象。

代码/**

* @Auther dbc

* @Date 2020/9/5 22:03

* 自定义数组,数组元素为Object类

* 构造方法:

* MyArrayList() 初始化数组,长度为0

* MyArrayList(int size) 创建长度为size的数组

* MyArrayList(Object... objects) 初始化即加入一些元素

* 主要方法:

* String join() 方法用于根据分隔符把数组中的所有元素放入一个字符串,默认分隔符为","逗号.

* String join(String separator) example: 元素为0,1,2,3的数组 使用join("-")得到:0-1-2-3

* String toString() 得到数组字符串形式

* boolean add(int index,Object o) 在指定索引后增加元素

* void add(Object... objects) 在数组末尾添加元素

* Object pop() 删除并返回数组最后一个元素

* MyArrayList splice(int index,int length) 在原数组从索引index开始剪切length长度个元素,返回剪切后的新的数组

* MyArrayList update(int index,Object o) 修改指定索引的元素

* Object shift() 删除并返回数组的第一个元素

* void unShift(Object... objects) 在数组开头添加元素

* MyArrayList slice(int start,int end) 方法可从已有的数组中返回选定的元素

* void sortAsc() 对数组进行升序排序(选择排序) 前提:数组元素均为Integer、Double、Float中的一种

* void sortDesc() 对数组进行降序排序(冒泡排序) 前提:数组元素均为Integer、Double、Float中的一种

* MyArrayList concat(MyArrayList... allList) 方法用于连接两个或多个数组(该方法不会改变现有的数组)

* void reverse() 颠倒数组中的元素

* Object charAt(int index) 获取索引index处的元素

* int indexOf(Object o,int startIndex) 从startIndex开始向后获取某个元素在数组的索引,没有则返回-1

* int lastIndexOf(Object o,int startIndex) 从startIndex开始向前获取某个元素在数组的索引,没有则返回-1

*

*/

public class MyArrayList {

private Object[] elementData;//元素

private int size;//数组长度

private static final float DEFAULT_EXPAND_FACTOR = 0.75f;//扩容因子

private static final float DEFAULT_NARROW_FACTOR = 0.5f;//缩小容量的因子

private static final int MAXIMUM_CAPACITY = 1 << 30;//最大容量

private static String joinSeparator =","; //join方法默认的分隔符

/**

* 从startIndex开始向前获取某个元素在数组的索引,没有则返回-1

* @param o

* @param startIndex

* @return

*/

public int lastIndexOf(Object o,int startIndex){

if(startIndex<0) startIndex=0;

if(startIndex>=size) startIndex=size-1;

for(

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值