一个把整型数组包装成类的例子
来源:互联网 发布:java获取本地ip地址 编辑:程序博客网 时间:2024/05/17 22:47
本程序共有四个类,在同一个包下,其中,ArrayTest为main()方法所在的类,Array为基本类,SortedArray和SortedArray1分别用两种方法实现排序功能,体会一下设计思想。
ArrayTest.java
/*
* 这个程序演示的是用一个包装的数组类Array实现整型数组的功能,同时还用两种方法实现了排序功能。这两种方法均设计了两个类:一个类是将数组类Array作为成员来操作的;一个类是将数组类Array作为基类来操作的。
*/
package com.lwj.demo;
public class ArrayTest {
public static void main(String[] args) {
Array ar = new Array(10);
try {
ar.add(1);
ar.add(12);
ar.add(21);
ar.add(41);
ar.add(31);
ar.add(21);
ar.add(4);
} catch (Exception e) {
e.printStackTrace();
}
System.out.println("————————原数组————————");
System.out.println(ar);
/*
* SortedArray s_ar = new SortedArray(ar);
*/
SortedArray1 s_ar = new SortedArray1(11);
try {
s_ar.add(2);
s_ar.add(12);
s_ar.add(22);
s_ar.add(32);
s_ar.add(4);
s_ar.add(5);
s_ar.add(33);
s_ar.add(1);
} catch (Exception e) {
e.printStackTrace();
}
System.out.println("————————已排完序的数组————————");
System.out.println(s_ar);
System.out.println("你要找的数在数组中的位置(从0开始,-1表示没有找到): " + s_ar.search(5));//与SortedArray类的对象不同,SortedArray1类的对象可以直接访问基类的方法,如:search()。
}
}
Array.java
package com.lwj.demo;
class Array {
protected int[] data;
protected int foot = 0;//表示数组实际的长度,由于包装的数组类在实例化时需指定最大长度,但实际使用时数组不一定达到最大长度,这样没有用完的数组空间便被初始化为0,为以后的排序等操作带来麻烦。
public Array(int length) {
data = new int[length];
}
//给包装的数组类中添加元素
public void add(int element) throws Exception {
if (foot < data.length) {
data[foot++] = element;
} else {
throw new Exception("数组越界!");
}
}
//查询指定值的整型数在数组中的位置(从0开始),-1表示没有找到
public int search(int key) {
int[] temp=this.getData();
for (int i = 0; i < temp.length; i++) {
if (temp[i] == key)
return i;
}
return -1;
}
public String toString() {
StringBuffer sb = new StringBuffer("");
for (int i = 0; i < foot; i++) {
sb.append(this.getData()[i]).append(" ");
}
sb.append("/n");
return sb.toString();
}
/*
* 这个getData()方法不是按照以往的getter方法写的,这个getData()方法返回的是不含未用空间的数组,方便以后操作。其实这个getData()方法在本类中可能用处不大,因为用foot照样可以完成search()和toString()操作。
*/
public int[] getData() {
int[] data1 = new int[foot];
System.arraycopy(data, 0, data1, 0, foot);
return data1;
}
public void setData(int[] data) {
this.data = data;
}
}
SortedArray.java
/*
* 这个类用数组类作成员来实现排序功能
*/
package com.lwj.demo;
import java.util.*;
class SortedArray {
Array ar;
public SortedArray(Array ar) {
this.ar = ar;
}
private void sort() {
int[] temp = ar.getData();
Arrays.sort(temp);
ar.setData(temp);
}
public String toString() {
this.sort();
return ar.toString();
}
}
SortedArray1.java
/*
* 这个类用Array作基类实现排序功能。
*/
package com.lwj.demo;
import java.util.*;
class SortedArray1 extends Array {
public SortedArray1(int length) {
super(length);
}
/*
* sort()方法被私有化后,这个类的对外界面就看似用Array对象实例化,访问它的方法就可以得到排序后的结果。
*/
private void sort() {
int[] temp = super.getData();
Arrays.sort(temp);
super.data=temp;
}
public String toString() {
this.sort();
return super.toString();
}
}
- 一个把整型数组包装成类的例子
- 把一个整型数组倒过来输出
- 输入一个整型数组(10个) 把最大的与第一个交换输出
- 整型数组处理算法(三)把一个数组里的所有元素,插入到另一个数组的指定位置
- 如何把一个整型数组中,奇数偶数进行分离
- 将整型数组转成一个完整的整型数字
- JS怎么把字符串数组转换成整型数组
- JS怎么把字符串数组转换成整型数组
- JS怎么把字符串数组转换成整型数组
- 计算一个整型数组的元素之和
- 求一个整型数组的最小值
- 编程随记:有整型数组a[],中间有连续递增的子数组,现在要求把原来数组中每个递增部分组成一个新的数组
- 判断一个整型数组是否包含另外一个数组(未使用异常类的情况下)
- 把JavaMail包装成简单的Sendmail
- 把JavaMail包装成简单的Sendmail
- java把大数据类型的包装类
- 把一个java web应用包装成桌面应用的简单做法(转)
- 把一个java web应用包装成桌面应用的简单做法
- 数据库范式
- dom4j学习总结(一)
- java中格式化输出数字
- 使用Hashtable对字符串进行碰撞
- 编译器入门问题
- 一个把整型数组包装成类的例子
- google风格代码
- 明媚千点光
- DOM 文档对象模型
- VC常用数据类型的使用
- mysql存储过程学习总结-操作符
- eclipse快捷键大全 (zhuan)
- 开会注意事项
- CMYK、RGB颜色对照表