ArrayList的简单实现
class AList<E>{
//属性:数组和实际元素个数
private Object[] data;
private int size;
//构造函数:有参、无参
public AList(int x){
if(x<0)
System.out.println("集合初始化异常,不正常的初始值");
else
data=new Object[x];
}
public AList(){
this(10);
}
//size方法:返回实际元素个数
public int size(){
return size;
}
//add方法:添加元素,先判断数组空间是否满了,满->扩容,再添加
public void add(E newData){
if(size==data.length)
data=Arrays.copyOf(data,size + (size >> 1));
data[size++]=newData;
}
//get方法:获取指定位置的元素,先对下表进行校验
public Object get(int index){
if(index<0 || index>size-1)
System.out.println("输入的下标不准确,请重新输入!");
return data[index];
}
//remove方法:传下标,先判断下标是否越界
public void remove(int index){
if(index<0 || index>size-1)
System.out.println("输入的下标不准确,请重新输入!");
System.arraycopy(data,index+1,data,index,(size--) -(index+1));
}
//remove方法:传下标,先判断下标是否越界,对数组进行循环遍历,用equals判断
public void remove(Object obj){
if(obj==null)
System.out.println("删除失败,传入元素不能为空");
else{
for(int i=0;i<size;i++){
if(obj.equals(data[i])){
remove(i);
}
}
}
}
//contains方法:判断数组中是否含有传入的参数
public boolean contains(Object obj){
for(int i=0;i<size;i++){
if(obj.equals(data[i]))
return true;
}
return false;
}
@Override
public String toString(){
StringBuffer str=new StringBuffer("[");
for(int i=0;i<size;i++){
if(i!=(size-1))
str.append(data[i]).append(",");
else
str.append(data[i]);
}
return str+"]";
}
}
ArrayList的简单实现的更多相关文章
- C#中数组与ArrayList的简单使用
1. 多维数组 2. 锯齿数组 3. 数组的常用操作 4. ArrayList 1. 多维数组 多维数组:行数和列数在定义时已确定 string[,] arr = new string[2, 3]; ...
- ArrayList 集合 简单运用
集合 遍历 import java.util.ArrayList; class Demo02 { public static void main(String[] args) { // 创建Arra ...
- javaSE基础之 ArrayList的底层简单实现
最近就是想扒一扒存在硬盘里面的学习资料(突然想到什么),把以前写过的一些东西整理一下分享出来. 这边是ArrayList 的简单实现,当然只实现了部分方法 package com.yck.collec ...
- 简单实现 ArrayList
java中提供了多个集合框架 其中就有ArrayList 下面简单的实现一下 只写了添加,获取长度和根据下标获取元素的方法 public class MyArrayList { //定义一个obje ...
- java 遍历arrayList的四种方法
package com.test; import java.util.ArrayList;import java.util.Iterator;import java.util.List; public ...
- ArrayList的使用方法(转载)
转载自: http://i.yesky.com/bbs/jsp/view.jsp?articleID=889992&forumID=150 1.什么是ArrayList ArrayLis ...
- ArrayList
各种原因,前两年做C语言去了,现在重新做JAVA, 感觉自己基础很不扎实,要好好学习啦, 先从简单的开始~ 以下内容基于jdk1.7.0_79源码: 什么是ArrayList 可以简单的认为是一个动态 ...
- Java Socket发送与接收HTTP消息简单实现
在上次Java Socket现实简单的HTTP服务我 们实现了简单的HTTP服务,它可以用来模拟HTTP服务,用它可以截获HTTP请求的原始码流,让我们很清楚的了解到我们向服务发的HTTP消息的结 构 ...
- Java基础(44):ArrayList使用详解
1.什么是ArrayList ArrayList就是传说中的动态数组,用MSDN中的说法,就是Array的复杂版本,它提供了如下一些好处: a.动态的增加和减少元素 b.实现了IColle ...
随机推荐
- K8s (常用命令)
查看集群信息: [root@kubernetes-master pods]# kubectl cluster-infoKubernetes master is running at http://lo ...
- WPF权限控制——【2】模块、菜单、按钮
周末没有工作,没有写博客,因为觉得休息很必要:曾听到一句话是这样说的:"你们得救在乎归回安息:你们得力在乎平静安稳".当我想到太阳没秒钟要燃烧420万吨的燃料时,想到的就是造物主的 ...
- DEDECMS:修改DEDECMS会员中心发送邮件时,邮件内容里出现在DEDE链接
1.在member/index_do.php里,把文件里的 $mailbody .= "Power by http://www.dedecms.com 织梦内容管理系统!\r\n" ...
- Jenkins开启丢弃旧的构建?你可要小心啊!
玩Devops的小伙伴应该对Jenkins都有了解. Github上16.8k的Star的项目,1500+的构建.发布等自动化插件可供选择,事实上的业界CICD标准领导者. JFrog.Coding等 ...
- Pytest(4)失败重跑插件pytest-rerunfailures
安装: pip3 install pytest-rerunfailures 重新运行所有失败用例 要重新运行所有测试失败的用例,请使用--reruns命令行选项,并指定要运行测试的最大次数: $ py ...
- EXCEL序列
- qmh的测试1
题目:传送门 首先输入一个n,之后输入n个数a(1<=a<=1e7),对这n个数排序后,你需要找到所有的它们连续的长度.把这些连续的长度排序后输出 输入 输入: 8 1 5 2 7 4 5 ...
- Codeforces Round #613 (Div. 2) B. Just Eat It! (DP)
题意:有一个长度为\(n\)的序列,找出最大的长度不为\(n\)的子段和,问最大子段和是否小于所有元素和. 题解:最大子段和我们可以直接用dp来找,每次状态转移为:\(dp[i]=max(dp[i-1 ...
- anaconda jupyter notebook 启动方法
介绍 anaconda jupyter notebook是一种基于浏览器的python编译环境.(大概) 使用时可能因为浏览器缓存造成问题. 但是很方便. 启动方法 anaconda navigato ...
- Leetcode(20)-有效的括号
给定一个只包括 '(',')','{','}','[',']' 的字符串,判断字符串是否有效. 有效字符串需满足: 左括号必须用相同类型的右括号闭合. 左括号必须以正确的顺序闭合. 注意空字符串可被认 ...