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. AppScan 8.0.3安全漏洞扫描总结

    本文记录了通过AppScan 8.0.3工具进行扫描的安全漏洞问题以及解决方案, 1.使用SQL注入的认证旁路 问题描述: 解决方案: 一般通过XSSFIlter过滤器进行过滤处理即可,通过XSSFI ...

  2. 转: 使用Jmeter创建ActiveMQ JMS POINT TO POINT请求,环境搭建、请求创建、插件安装、监听服务器资源等

    转自:http://www.cnblogs.com/qianyiliushang/p/4348584.html 准备工作: 安装JDK,推荐使用1.7以上版本,并设置JAVA_HOME 下载Jmete ...

  3. 找到div下的第一个ul

    $("div#div的id ul li a")//选择的是div下 ul下所有li下的所有a标签 $("div#div的id").children(" ...

  4. Annotation之三:自定义注解示例,利用反射进行解析

    @Retention定义了该Annotation被保留的时间长短有3中RetentionPolicy.SOURCE源文件有效,RetentionPolicy.CLASS:在class文件中有效,Ret ...

  5. 为何指针初始化为NULL

    指针初始化为NULL,指向NULL指针区(大小64K),如果读取或写入这个地址,会引发内存写保护异常 版权声明:本文为博主原创文章,未经博主允许不得转载.

  6. C++获取Lua全局变量和执行Lua多参数多返回值函数

    C++代码: // LuaAndC.cpp : 定义控制台应用程序的入口点. // #include "stdafx.h" #include <iostream> #i ...

  7. Linux性能监测:网络篇

    网络的监测是所有 Linux 子系统里面最复杂的,有太多的因素在里面,比如:延迟.阻塞.冲突.丢包等,更糟的是与 Linux 主机相连的路由器.交换机.无线信号都会影响到整体网络并且很难判断是因为 L ...

  8. python's twenty-second day for me 封装,property方法

    面对对象的三大特性:继承,多态,封装. 函数和属性装到了一个非全局的命名空间----封装. 封装: 在类中,静态属性,方法,对象属性都可以变成私有的,只需要在这些名字前加上‘__’(双下划线). 在类 ...

  9. Java之Object类与instanceof关键字

    Object类是所有类的父类: 我们上下代码: package com.learn.chap03.sec14; public class A { // 上面类A继承了Object类,因此又可这样定义: ...

  10. PHP 乘法口诀表

    echo "乘法口诀表<br>"; for($i=1;$i<10;$i++) { for ($j = 1; $j <= $i; $j++) printf(& ...