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. Linux 安装交叉编译工具链

    交叉编译工具链下载地址: 链接:http://pan.baidu.com/s/1dE7P9rb 密码:300i 声明:下面每一步中的“pwd”指令都是为了看清楚当前的目录,没有其他实际意义. 系统:u ...

  2. ansible命令应用示例

                                  ansible命令应用示例                             ping slave组 ansible slave -m ...

  3. Python基础-变量作用域

    1.函数作用域介绍 函数作用域 Python中函数作用域分为4种情况: L:local,局部作用域,即函数中定义的变量: E:enclosing,嵌套的父级函数的局部作用域,即包含此函数的上级函数的局 ...

  4. spring的@Transactional注解详细用法(转)

    概述 事务管理对于企业应用来说是至关重要的,即使出现异常情况,它也可以保证数据的一致性.Spring Framework对事务管理提供了一致的抽象,其特点如下: 为不同的事务API提供一致的编程模型, ...

  5. juc线程池原理(一):总体介绍

    概要 线程池类图 线程池的类图如下: 1. Executor 它是"执行者"接口,它是来执行任务的.准确的说,Executor提供了execute()接口来执行已提交的 Runna ...

  6. chrome打开新标签页插件

    标签(空格分隔): 日常办公,chrome浏览器 一直被chrome浏览器打开新标签页困扰,每次点开一个新标签页还要再去点一下主页,才能打开搜索页面.如果直接点击主页,又会把当前的页面刷掉,实在是非常 ...

  7. php爬虫神器cURL

    cURL 网页资源(编写网页爬虫) 接口资源 ftp服务器文件资源 其他资源 static public function curl($url, $data = array(), $timeout = ...

  8. ajax-解决跨域请求(基于js,jQuery的josnp,设置响应头的cors)

    同源策略 同源策略(Same origin policy)是一种约定,它是浏览器最核心也最基本的安全功能,如果缺少了同源策略,则浏览器的正常功能可能都会受到影响.可以说Web是构建在同源策略基础之上的 ...

  9. log4net 使用总结- (3)在ASP.NET MVC 中使用

    把输出到sqlserver数据库中. 输出到数据库中和文件中类似,具体配步骤如下 第一步.创建数据库 CREATE TABLE [dbo].[Log] ( [Id] [int] IDENTITY (1 ...

  10. 第十三章 Spring消息(待续)

    ···············