普通int:

public class Array {//成员变量private int[] data;private int size;//构造函数,传入数组的容量capacity构造Arraypublic Array(int capacity){data=new int[capacity];size=0;}//无参数构造函数,默认数组的容量capacity=10public Array(){this(10);}//获取数组中元素的个数public int getSize(){return size;}//获取数组的容量public int getCapacity(){return data.length;}//返回数组是否为空public boolean isEmpty(){return size==0;}//向所有元素后添加一个新元素public void addLast(int e){add(size, e);}//在所有元素前面添加一个新元素public void addFirst(int e){add(0, e);}//获取index索引的位置的元素int get(int index){if(index<0||index>=size)throw new IllegalArgumentException("Get failed.Index is illegal.");return data[index];}//修改index索引位置的元素为evoid set(int index,int e){if(index<0||index>=size)throw new IllegalArgumentException("Get failed.Index is illegal.");data[index]=e;}//查找数组中是否有元素epublic boolean contains(int e){for   (int i=0;i<size;i++){if(data[i]==e){return true;}}return false;}//查找数组中元素e所在的索引,如果不存在元素e,则返回-1public int find(int e){for(int i=0;i<size;i++){if(data[i]==e){return i;}}return -1;}//从数组中删除index位置的元素,返回删除的元素public int remove(int index){if(index<0||index>=size)throw new IllegalArgumentException("Remove failed.Index is illegal.");int ret=data[index];for(int i=index+1;i<size;i++)data[i-1]=data[i];size--;return ret;}//从数组中删除第一个元素,返回删除的元素public int removeFirst(){return remove(0);}//从数组中删除最后一个元素,返回删除的元素public int removeLast(){return remove(size-1);}//从数组中删除元素epublic void removeElement(int e){int index=find(e);if(index!=-1) remove(index);}//在第index个位置插入一个新元素epublic void add(int index,int e){if(size==data.length)throw new IllegalArgumentException("Add failed.Array is full.");if(index<0||index>size)throw new IllegalArgumentException("Add failed.Require index>=0 and index<=size.");for(int i=size-1;i>=index ;i--)data[i+1]=data[i];data[index]=e;size++;}@Overridepublic String toString(){StringBuilder res=new StringBuilder();res.append(String.format("Array:size=%d,capacity=%d\n", size,data.length));res.append('[');for(int i=0;i<size;i++){res.append(data[i]);if(i!=size-1)//判断是否是最后一个元素res.append(",");}res.append(']');return res.toString();}
}

  泛型:

public class Array<E> {//成员变量private E[] data;private int size;//构造函数,传入数组的容量capacity构造Arraypublic Array(int capacity){data=(E[])new Object[capacity];size=0;}//无参数构造函数,默认数组的容量capacity=10public Array(){this(10);}//获取数组中元素的个数public int getSize(){return size;}//获取数组的容量public int getCapacity(){return data.length;}//返回数组是否为空public boolean isEmpty(){return size==0;}//向所有元素后添加一个新元素public void addLast(E e){add(size, e);}//在所有元素前面添加一个新元素public void addFirst(E e){add(0, e);}//获取index索引的位置的元素public E get(int index){if(index<0||index>=size)throw new IllegalArgumentException("Get failed.Index is illegal.");return data[index];}//修改index索引位置的元素为epublic void set(int index,E e){if(index<0||index>=size)throw new IllegalArgumentException("Get failed.Index is illegal.");data[index]=e;}//查找数组中是否有元素epublic boolean contains(E e){for (int i=0;i<size;i++){if(data[i].equals(e){return true;}}return false;}//查找数组中元素e所在的索引,如果不存在元素e,则返回-1public int find(E e){for(int i=0;i<size;i++){if(data[i].equals(e)){return i;}}return -1;}//从数组中删除index位置的元素,返回删除的元素public E remove(int index){if(index<0||index>=size)throw new IllegalArgumentException("Remove failed.Index is illegal.");E ret=data[index];for(int i=index+1;i<size;i++)data[i-1]=data[i];size--;data[size]=null;//loitering objects!=memory leakif(size==data.length/2)resize(data.length/2);return ret;}//从数组中删除第一个元素,返回删除的元素public E removeFirst(){return remove(0);}//从数组中删除最后一个元素,返回删除的元素public E removeLast(){return remove(size-1);}//从数组中删除元素epublic void removeElement(E e){int index=find(e);if(index!=-1) remove(index);}//在第index个位置插入一个新元素epublic void add(int index,E e){if(index<0||index>size)throw new IllegalArgumentException("Add failed.Require index>=0 and index<=size.");if(size==data.length)resize(2*data.length);for(int i=size-1;i>=index ;i--)data[i+1]=data[i];data[index]=e;size++;}@Overridepublic String toString(){StringBuilder res=new StringBuilder();res.append(String.format("Array:size=%d,capacity=%d\n", size,data.length));res.append('[');for(int i=0;i<size;i++){res.append(data[i]);if(i!=size-1)//判断是否是最后一个元素res.append(",");}res.append(']');return res.toString();}//扩容private void resize(int newCapacity){E[] newData=(E[])new Object[newCapacity];for(int i=0;i<size;i++)newData[i]=data[i];data=newData;}

  测试:

public class Student {private String name;private int score;public Student(String studentName,int studentScore){name=studentName;score=studentScore;}public String toString(){return String.format("Student(name:%s,score:%d)", name,score);}public static void main(String[] args){Array<Student> arr=new Array<>();arr.addLast(new Student("Alice", 100));arr.addLast(new Student("Bob", 66));arr.addLast(new Student("CharLie", 88));System.out.println(arr);}
}

  

转载于:https://www.cnblogs.com/sunliyuan/p/10467623.html

JAVA 数据类型数组相关推荐

  1. java中数组的返回值是什么类型_Java数组也是一种数据类型

    Java 的数组要求所有的数组元素具有相同的数据类型.因此,在一个数组中,数组元素的类型是唯一的,即一个数组里只能存储一种数据类型的数据,而不能存储多种数据类型的数据.因为 Java 语言是面向对象的 ...

  2. mongodb java数组_MongoDB 基础java数据类型

    mongodb的java数据类型有 Object Ids 自动ID Regular Expressions 正则表达式搜索记录 Dates/Times 时间 Database References 数 ...

  3. Java语言程序设计 上机实验2 掌握Java的基本语言成分和流程控制语句。 掌握Java中数组的使用,理解引用数据类型。 掌握String类的使用。...

      Java语言程序设计 上机实验2 实验目的: 掌握Java的基本语言成分和流程控制语句. 掌握Java中数组的使用,理解引用数据类型. 掌握String类的使用. 实验内容: 注:标(*)为选做内 ...

  4. Java int数据类型数组降序排列的方法

    Java int数组类型数组降序排列的方法 前言:使用Java对int数据类型数组降序排列没有C++那样方便但是也是可以简单实现的. 1.方法一: public class Main {public ...

  5. Java(基本数据类型)数组转List简述

    1.Java(基本数据类型)数组转List简述 2.List转Java(基本数据类型)数组简述 3.List<String>转为String[]数组,String[]数组转为List< ...

  6. java中数组的含义_数组

    数组(Array)是有序的元素序列.[1] 若将有限个类型相同的变量的集合命名,那么这个名称为数组名.组成数组的各个变量称为数组的分量,也称为数组的元素,有时也称为下标变量.用于区分数组的各个元素的数 ...

  7. java对于数组的定义_Java中方法的定义与使用,以及对数组的初步了解。

    方法 方法的含义 定义: 方法就是用来完成解决某件事情或实现某个功能的办法. 方法实现的过程中,会包含很多条语句用于完成某些有意义的功能--通常是处理文本,控制输入或计算数值. 我们可以通过在程序代码 ...

  8. Java中数组以及集合

    2019独角兽企业重金招聘Python工程师标准>>> java中数组: 数组在Java里是一种特殊类型,有别于普通的"类的实例"的对象.但实际数组也是一种对象类 ...

  9. java数据类型_Java 变量、表达式和数据类型详解

    数据类型 一.变量 变量: 表示存储空间,可用来存放某一类型(整数.小数...)的数据,没有固定值,变量值是可变的,可重复使用,也可以用来存储某种类型的未知数据. 变量的特点: ① 占据内存中的一块存 ...

最新文章

  1. js 监听 安卓事件_百行代码实现js事件监听实现跨页面数据传输
  2. JS在即将离开当前页面(刷新或关闭)时触发事件
  3. Qt安装—图文并茂搭建VS2008+QT开发环境
  4. c 异常 java异常_C ++和Java中异常处理的比较
  5. HDU 1430 魔板(康托展开+BFS+预处理)
  6. oracle opatch那个回退,下面是我在打OPatch时使用的一般步骤,供大家参考
  7. 能ping通工作组计算机 无法访问,可以ping通不能访问共享,其他电脑可以访问
  8. perl语言中的AWK之基础篇
  9. 一、Java语言基础(5)_数组高级——方法参数的值传递机制
  10. 【TeachNLP】文本数据处理-词表获取
  11. 数字信号处理基础----拉普拉斯变换与Z变换
  12. oracle财务软件中出纳用,财务软件中:“出纳签字”功能在会计核算中的作用及操作步骤?...
  13. 您可能是盗版软件的受害者——解决办法
  14. Excel怎么把两列数据穿插合并为一列
  15. 树莓派3安装系统linux,树莓派3 安装Fyde OS
  16. 如何从Docker容器内部获取Docker主机的IP地址
  17. Excel如何将工作表按数值大小排序
  18. DAP可视化组件升级开发说明
  19. Win7 IE桌面图标消失 修复方法
  20. Science: 重新“野化“ 植物微生物组

热门文章

  1. 5G让万物互联成为可能 大连接时代谋划物联网
  2. IDEA 中生成 MyBatis 逆向工程实践
  3. 10分钟 MySQL 入门教程
  4. c# RegistryKey 的相关简单操作
  5. linux系统硬盘数量,Linux ext4文件系统划分磁盘inode数量
  6. Zookeeper集群详解
  7. 计算机二级考试网易教程,学姐分享 | 计算机二级来袭,你准备好了吗?
  8. unity连接mysql并读取所有数据库_Unity 3D 连接Mysql数据库
  9. 老化试验机ami怎么寻找过去的数据_广东元耀:您知道塑料臭氧老化试验机检测浓度的方法有哪些吗?...
  10. java 常量池溢出_Java方法区和运行时常量池溢出问题分析(转)