对java数组操作方法
来源:互联网 发布:百度us优化怎么做 编辑:程序博客网 时间:2024/06/07 06:11
/**
* 建立一个可以实现整型数组的操作类(Array),而后 在里面可以操作的数组大小由外部来决定,
* 而后在Array类里面需要提供有数组的如下处理:进行数组的增加(如果数据满了,则无法增加)、
* 可以实现数组的容量扩充、取得数组的全部内容
* 完成之后次基础上在派生出两个子类;
* 1.数组排序类:返回的数据必须是排序后的结果
* 2.数组反转类:可以实现内容的首尾交换
*/
package cn.ml.array;
import java.util.Arrays;
class Array{ //数组操作类
private int data[] ;//数组并不知道具体的长度
private int food ; //定义脚标处理
/**
* 实现有外部决定数组的大小
* @param len 数组的长度
*/
public Array(int len) {//设置一个初始化值
if(len<0) {
this.data = new int[0];
}else {
this.data = new int[1];
}
}
/**
* 改变原数组的大小
* @param inc
*/
public void increment(int inc) {
int[] temp = new int[this.data.length + inc];
System.arraycopy(this.data, 0, temp, 0, this.data.length);
this.data = temp;//改变应引用
}
/**
* 获取全部的数据
* @return 全部数据
*/
public int[] getData(){
return this.data;
}
/**
* 实现数据的添加
* @param num 添加的数据
* @return 添加结果
*/
public boolean add(int num) {
if(this.food<this.data.length) {
this.data[this.food++] =num;
return true;
}
return false;
}
}
public class BasicsArray {
public static void main(String[] args) {
Array arr = new Array(5);
System.out.print(arr.add(10)+"\t");
System.out.print(arr.add(15)+"\t");
System.out.print(arr.add(25)+"\t");
System.out.print(arr.add(52)+"\t");
System.out.print(arr.add(56)+"\t");
if(arr.add(99) == false) {
arr.increment(3);//扩充3个容量
System.out.print(arr.add(99)+"\t");
System.out.print(arr.add(85)+"\t");
System.out.print(arr.add(35)+"\t");
}
int temp[] = arr.getData();
for (int i = 0; i < temp.length; i++) {
System.out.println(temp[i]+ "\t");
}
}
}
/**
* 数组排序子类
* @author Administrator
*
*/
class SortArray extends Array{
public SortArray(int len) {//设置长度
super(len);
}
/**
* 覆盖父类的输出方法,子类中进行排序后的输出
*/
public int[] getData() {
Arrays.sort(super.getData());
return super.getData();
}
}
/**
* 数组反转的类
* @author Administrator
*
*/
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 i = 0; i < center; i++) {
int temp = super.getData()[head];
super.getData()[head++] = super.getData()[tail];
super.getData()[tail--] = temp;
}
return super.getData();
}
}
* 建立一个可以实现整型数组的操作类(Array),而后 在里面可以操作的数组大小由外部来决定,
* 而后在Array类里面需要提供有数组的如下处理:进行数组的增加(如果数据满了,则无法增加)、
* 可以实现数组的容量扩充、取得数组的全部内容
* 完成之后次基础上在派生出两个子类;
* 1.数组排序类:返回的数据必须是排序后的结果
* 2.数组反转类:可以实现内容的首尾交换
*/
package cn.ml.array;
import java.util.Arrays;
class Array{ //数组操作类
private int data[] ;//数组并不知道具体的长度
private int food ; //定义脚标处理
/**
* 实现有外部决定数组的大小
* @param len 数组的长度
*/
public Array(int len) {//设置一个初始化值
if(len<0) {
this.data = new int[0];
}else {
this.data = new int[1];
}
}
/**
* 改变原数组的大小
* @param inc
*/
public void increment(int inc) {
int[] temp = new int[this.data.length + inc];
System.arraycopy(this.data, 0, temp, 0, this.data.length);
this.data = temp;//改变应引用
}
/**
* 获取全部的数据
* @return 全部数据
*/
public int[] getData(){
return this.data;
}
/**
* 实现数据的添加
* @param num 添加的数据
* @return 添加结果
*/
public boolean add(int num) {
if(this.food<this.data.length) {
this.data[this.food++] =num;
return true;
}
return false;
}
}
public class BasicsArray {
public static void main(String[] args) {
Array arr = new Array(5);
System.out.print(arr.add(10)+"\t");
System.out.print(arr.add(15)+"\t");
System.out.print(arr.add(25)+"\t");
System.out.print(arr.add(52)+"\t");
System.out.print(arr.add(56)+"\t");
if(arr.add(99) == false) {
arr.increment(3);//扩充3个容量
System.out.print(arr.add(99)+"\t");
System.out.print(arr.add(85)+"\t");
System.out.print(arr.add(35)+"\t");
}
int temp[] = arr.getData();
for (int i = 0; i < temp.length; i++) {
System.out.println(temp[i]+ "\t");
}
}
}
/**
* 数组排序子类
* @author Administrator
*
*/
class SortArray extends Array{
public SortArray(int len) {//设置长度
super(len);
}
/**
* 覆盖父类的输出方法,子类中进行排序后的输出
*/
public int[] getData() {
Arrays.sort(super.getData());
return super.getData();
}
}
/**
* 数组反转的类
* @author Administrator
*
*/
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 i = 0; i < center; i++) {
int temp = super.getData()[head];
super.getData()[head++] = super.getData()[tail];
super.getData()[tail--] = temp;
}
return super.getData();
}
}
阅读全文
0 0
- 对java数组操作方法
- 对数组的操作方法
- Java中对数组的两种操作方法Arrays、foreach()
- Java数组操作方法
- Java对LDAP的操作方法
- JS:对数组常用的操作方法
- java对时间的各种操作方法
- JAVA对数字运算常用操作方法
- Java对Redis的操作方法总结
- Java数组的基本操作方法整理
- Java数组的基本操作方法整理
- 关于Java中数组的常用操作方法
- 数组操作方法
- 数组操作方法
- 对java字符串的各种操作方法和应用
- Java 对文件和文件夹的基础操作方法汇总
- 黑马程序员-java基础-数组的三种重要操作方法:
- ACE对文件操作方法
- 【三】Java流程控制
- Unity_DOTween动画的学习(七)_Tweener的使用简单补充_DOText的简单演示
- 读书笔记:《Android内核剖析》
- ios实现navigationItem的titleLabel双行显示
- Redis Sentinel 机制和用法
- 对java数组操作方法
- golang sleep
- 网络复习-网络层
- 解决Tomcat服务器中文编码
- 一起学Netty(二)之 Hello Netty的原型图解
- 16.04下搭建Web服务器(MySQL+PHP+Apache)
- java面试题(2)
- 类集-list操作
- Android Studio 快捷键