首页 > 其他分享 >8.23 数组操作

8.23 数组操作

时间:2023-06-08 22:12:21浏览次数:52  
标签:arr int System 数组 8.23 操作 getData super public

建立一个可以实现整型数组的操作类(Array),而后在里面可以操作的数组的大小由外部来决定, 而后在Array类里面需要提供有数组的如下处理:进行数据的增加(如果数据满了则无法增加)、可以实现数组的容量扩充、取得数组全部内容。 完成之后在此基础上再派生出两个子类: · 数组排序类:返回的数据必须是排序后的结果; · 数组反转类:可以实现内容的首尾交换。

class Array {
    private int [] data;
    private int foot;// 进行数组索引控制
    public Array(int len){
        if(len > 0){
            this.data = new int[len];
        } else {
            this.data = new int[1];
        }
    }
    
    // 实现数组的容量扩充,给出的是扩充大小,实际大小,
    public void increment(int num){
        int newData[] = new int[this.data.length + num];
        System.arraycopy(this.data,0,newData,0,this.data.length);
        this.data = newData;
    }

    public boolean add(int num){// 数据增加赋值;
        if(this.foot < this.data.length){
            this.data[this.foot++] = num;
            return true;
        }
        return false;
    }

    public int[] getData(){
        return this.data;
    }

}

class SortArray extends Array {
    public SortArray(int len){
        super(len);
    }
    public int[] getData(){// 获得排序结果
        java.util.Arrays.sort(super.getData());// 排序
        return super.getData();
    }
}

class ReverseArray extends Array {
    public ReverseArray(int len){
        super(len);
    }

    public int[] getData(){// 获得排序结果
        int center = super.getData().length / 2;
        int head = 0;
        int tail = super.getData().length - 1;
        for(int x = 0;x < center;x++){

            int temp = super.getData()[head];
            super.getData()[head] = super.getData()[tail];// 将head,tail位置的数组颠倒!!!
            super.getData()[tail] = temp;

            head++;
            tail--;
        }
        return super.getData();
    }
}


public class HelloWorld {
	public static void main(String args[]) {
        Array arr = new Array(5);
        //SortArray arr = new SortArray(5);
        //ReverseArray arr = new ReverseArray(5);

        System.out.println(arr.add(1));
        System.out.println(arr.add(12));
        System.out.println(arr.add(143));
        System.out.println(arr.add(153));
        System.out.println(arr.add(12));
        arr.increment(3);
        System.out.println(arr.add(91));
        System.out.println(arr.add(92));
        System.out.println(arr.add(93));

        int result[] = arr.getData();
        for(int temp : result){
            System.out.print(temp + ",");
        }
	}
}

标签:arr,int,System,数组,8.23,操作,getData,super,public
From: https://www.cnblogs.com/pansidong/p/17467815.html

相关文章

  • MYSQL数据表操作经验 初学者必看
    特殊导入数据表的方法(CMD命令): D:\wamp\bin\mysql15.6.12\bin>mysql-uroot-pnewpump<e:table.sql 或者用source命令导入数据表之前设置数据表文件的编码(这里并不是设置数据表里的内容编码):D:\wamp\bin\mysql15.6.12\bin>mysql-uroot-p--default-charcter-set=utf......
  • Git远程操作详解
    Git是目前最流行的版本管理系统,学会Git几乎成了开发者的必备技能。Git有很多优势,其中之一就是远程操作非常简便。本文详细介绍5个Git命令,它们的概念和用法,理解了这些内容,你就会完全掌握Git远程操作。gitclonegitremotegitfetchgitpullgitpush本文针对初级用户,从最简单的讲起,但......
  • SDN ryu.app.ofctl_rest操作实践
    安装Postman网上自己找教程,也可用国内的对标产品Apipost本文采用的是Apipost启动Ryu控制器切换到自己的ryu目录cd/home/ubuntu/ryu/ryu/appsudoryu-managersimple_switch.py再开一个终端cd/home/ubuntu/ryu/ryu/appsudoryu-managerofctl_rest.py如果遇到......
  • 将一个数组拆分为一个为奇数数组,一个为偶数数组
    将一个数组拆分为一个为奇数数组,一个为偶数数组#include<stdio.h>intmain(){inta[10]={0,1,2,3,4,5,6,7,8,9};inti[10],j[10];intb,c,d;c=d=0;for(b=0;b<10;b++){if(a[b]%2==0){i[c]=a[b];c......
  • 将奇数数组与偶数数组合并为一个数组
    将奇数数组与偶数数组合并为一个数组#include<stdio.h>intmain(){inta[10];inti[10]={0,2,4,6,8};intj[10]={1,3,5,7,9};intb,c,d,e;d=e=5;c=0;for(b=0;b<d;b++){a[c]=i[b];c++;}for(b=0;b<e;b++......
  • javascript操作xml(增删改查)例子代码
    关键字:javascript操作xml(增删改查)自己做了一个小东西,不是很好,但是对初学来说是一个不错的例子!包括了stu.hta(是HTML应用程序);stu.xml注意下面的HTML代码必须保存为后缀名为hta否则当对XML文件进行操作(增删改)的时候就会提示没有权限!!文件stu.hta代码如......
  • dotgnu如何实现C#的typeof操作符
    typeof对于传统的C/C++程序员来说,反射(reflection)始终是一个新奇(extrotic)的存在,而typeof是语言内置的获取一个类型的方法。当然获得一个特定类型的typeof并不特殊,但是这个typeof的返回值是一个Object,并且是一个Type类型,这就意味着可以通过一个变量来保存任意的类型信息,从而可......
  • 回文数与字符数组
    争取一天一道找实习前刷满500道今天写了一道简单的力扣题,回文数与字符数组Stringres=Integer.toString(x);Stringresrev="";for(inti=0;i<res.length();i++){resrev=res.charAt(i)+resr......
  • 384. 打乱数组 (数组洗牌)
    labuladong题解难度中等338给你一个整数数组 nums ,设计算法来打乱一个没有重复元素的数组。打乱后,数组的所有排列应该是 等可能 的。实现 Solution class:Solution(int[]nums) 使用整数数组 nums 初始化对象int[]reset() 重设数组到它的初始状态并返回in......
  • .Net全网最简RabbitMQ操作【强烈推荐】
    【前言】本文自1年前的1.0版本推出以来,已被业界大量科技公司采用。同时也得到了.Net圈内多位大佬的关注+推荐,文章也被多家顶级.Net/C#公众号转载。现在更新到了7.0版本,更好的服务各位.Neter。 【正文】支持.Net/.NetCore/.NetFramework,可以部署在Docker,Windows,Linux,......