public class Arrays {
    //创建一个Integer空数组
    public static Integer[] player=null;
    //添加球员号码
    private static int size=0;//初始化数组的元素个数
    static StringBuffer sb=new StringBuffer();
    public static void init(int initialCapacity){//初始容量为5的线性列表,用来存储数据
        if(initialCapacity<0){
            throw new IllegalArgumentException("容量不能为负数!");
        }
        player=new Integer[initialCapacity];
    }
    
    public static void add(Integer playNum){//为数组添加元素
        //数组扩容
        if(size==player.length){
            Integer[] temp=java.util.Arrays.copyOf(player, player.length*2);
            player=temp;
        }
        player[size]=playNum;
        size++;
    }     private static void  replace(int indexNum,int setNum) {//根据输入的数据替换成新的数据
        int index=getIndexNum(indexNum);//根据输入的数据查看索引位置
        if(index>=0){
            player[index]=setNum;
        }
    }
    private static void indexReplace(int index, int newData) {//根据输入索引位置替换数据
        if(index<0 || index>=size){
            throw new IllegalArgumentException("超出索引位置!");
        }
        player[index]=newData;
    }
    private static int  select(int index) {//根据索引位置查找对应的数据
        if(index<0 || index>=size){
            throw new IllegalArgumentException("超出索引位置!");
        }
        if(index>size-1){
            return -1;
        }
     return player[index];
    }
    private static int getIndexNum(int indexNum) {//根据输入的数据查看索引位置
        for (int index = 0; index <size; index++) {
            if(player[index].equals(indexNum)){
                return index;
            }
        }
        return -1;
    }
    private static void delete(int index) {//删除指定索引位置的数据
        if(index<0 || index>=size){
            throw new IllegalArgumentException("超出索引位置!");
        }
        for (int i = index; i < size-1; i++) {
            player[i]=player[i+1];
        }
        size--;
    }
    //打印数组
    public static void print(){
        if(player==null){
            System.out.println("数组为空!");
            return;
        }
        if(size==0){
            System.out.println("[ ]");
            return;
        }
        sb.append("[");
        for (int index = 0; index < size; index++) {
            sb.append(player[index]);
            if(index!=size-1){
                sb.append(",");
            }else{
                sb.append("]");
            }
        }
        System.out.println(sb.toString());
    }
    public static void main(String[] args) {
        init(5);
        add(11);
        add(22);
        add(33);
        add(44);
        add(55);
        add(66);
        print();
//        int data=select(4);
//        System.out.println(data);
//        int num=getIndexNum(33);//查找值为33的索引位置
//        System.out.println(num);
        //indexReplace(2,337);
        //replace(22, 66);
        //delete(3);
        //print();
    } }

Java 数据结构之数组的更多相关文章

  1. JAVA数据结构--Array数组实现

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

  2. JAVA数据结构之数组

    接下来的几篇博文会在最近仔细研读数据结构与算法的书籍后会摘录一些要点和总结一些自己的心得体会,帮助大家更深入地理解java中的数据结构和一些基本的算法,同时巩固自己数据结构和算法这些最基础的计算机知识 ...

  3. Java数据结构和算法(二)——数组

    上篇博客我们简单介绍了数据结构和算法的概念,对此模糊很正常,后面会慢慢通过具体的实例来介绍.本篇博客我们介绍数据结构的鼻祖——数组,可以说数组几乎能表示一切的数据结构,在每一门编程语言中,数组都是重要 ...

  4. Java数据结构和算法 - 数组

    Q: 数组的创建? A: Java中有两种数据类型,基本类型和对象类型,在许多编程语言中(甚至面向对象语言C++),数组也是基本类型.但在Java中把数组当做对象来看.因此在创建数组时,必须使用new ...

  5. Java数据结构和算法(二):数组

    上篇博客我们简单介绍了数据结构和算法的概念,对此模糊很正常,后面会慢慢通过具体的实例来介绍.本篇博客我们介绍数据结构的鼻祖——数组,可以说数组几乎能表示一切的数据结构,在每一门编程语言中,数组都是重要 ...

  6. 【学习总结】java数据结构和算法-第三章-稀疏数组和队列

    相关链接 [学习总结]尚硅谷2019java数据结构和算法 github:javaDSA 目录 稀疏数组 队列 稀疏数组 稀疏数组介绍 图示 应用实例 代码实现 SparseArray.java:与二 ...

  7. 数据结构与算法系列2 线性表 使用java实现动态数组+ArrayList源码详解

    数据结构与算法系列2 线性表 使用java实现动态数组+ArrayList源码详解 对数组有不了解的可以先看看我的另一篇文章,那篇文章对数组有很多详细的解析,而本篇文章则着重讲动态数组,另一篇文章链接 ...

  8. Java数据结构和算法之数组与简单排序

    一.数组于简单排序 数组 数组(array)是相同类型变量的集合,可以使用共同的名字引用它.数组可被定义为任何类型,可以是一维或多维.数组中的一个特别要素是通过下标来访问它.数组提供了一种将有联系的信 ...

  9. Java数据结构之队列的实现以及队列的应用之----简单生产者消费者应用

    Java数据结构之---Queue队列 队列(简称作队,Queue)也是一种特殊的线性表,队列的数据元素以及数据元素间的逻辑关系和线性表完全相同,其差别是线性表允许在任意位置插入和删除,而队列只允许在 ...

随机推荐

  1. HTTP协议-简介

    1.什么是http协议? 百度百科上的解释:超文本传输协议(HTTP,HyperText Transfer Protocol)是互联网上应用最为广泛的一种网络协议.所有的WWW文件都必须遵守这个标准. ...

  2. PHP echo汉字出现乱码的情况之一

    当然首先要理清楚到底是web服务端造成,php造成的,还是数据库造成的. 需要在头文件里UTF-8 <head> <meta http-equiv="Content-Typ ...

  3. HDOJ5877(dfs序+离散化+树状数组)

    Weak Pair Time Limit: 4000/2000 MS (Java/Others)    Memory Limit: 262144/262144 K (Java/Others)Total ...

  4. Python web框架 Tornado(二)异步非阻塞

    异步非阻塞 阻塞式:(适用于所有框架,Django,Flask,Tornado,Bottle) 一个请求到来未处理完成,后续一直等待 解决方案:多线程,多进程 异步非阻塞(存在IO请求): Torna ...

  5. a标签什么时候可以设置宽高

    行内元素(如a标签),在文档流中的时候因为是行内元素所以无法设置宽高:而当设置了绝对定位或者浮动,会生成块框(即变成块元素),所以就可以设置宽高了

  6. Three.js创建运动立体几何体示例

    效果图 安装 帧率统计工具 变量控制GUI demo 效果图 安装 npm install three 帧率统计工具 // 监听动画帧率 var Stats = function () { var m ...

  7. C# web程序,winform程序,控制台程序配置log4net,使用log4net

    第一添加log4net.config,这里配置包括信息提示写入,错误信息写入,控制台消息展示 <?xml version="1.0" encoding="utf-8 ...

  8. [原创]Java使用反射及自定义注解实现对象差异性比较

    Java项目C中 有一处逻辑,对于资源数据(类型为ResourceItem,拥有int/double/boolean/String类型数十个字段),需要比对资源数据每次变更的差异,并描述出变更情况.并 ...

  9. ActiveX每次网页打开提示活动内容运行

    (2)       设置允许活动内容运行. 在启动调试,网页经常会呈现如下提示框,每次都要确认,很麻烦. 以下方法可以消除这个提示框. 在IE中打开Internet 选项对话框,选择高级选项卡,勾选里 ...

  10. Python 小练习一

    1.如果同一个ip地址60s之内访问超过200次,那么就把ip加入黑名单 需求分析: 1.60s读一次文件 2.分割,取第一个元素,ip地址 3.把所有ip加入到一个list里面,如果ip次数超过20 ...