按要求定义一个操作类:要求完成一个数组操作类,其中可以加入任意类型的数据,数组具体的操作类型由外部决定,并且可以实现查询功能。 跪求高手给出 程序设计案例! 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 ArrayOper.javapublic class ArrayOper { private Object[] array; private int length = 0; private ArrayOper(){} public ArrayOper(Object[] array) { this.array = array; if(array != null && array.length > 0){ length = array.length; } } public int getLength() { return length; } public void add(Object o){ if(length == 0){ array = new Object[10]; array[0] = o; }else if(length > 0){ Object[] os = new Object[array.length + 1]; this.copyArray(os); os[array.length] = o; array = os; length ++; } } private void copyArray(Object[] os){ for(int i=0;i<array.length;i++){ os[i] = array[i]; } } public void setObj(Object o,int index) throws Exception{ if(index >= array.length ){ Exception e = new Exception("索引越界"); throw e; } array[index] = o; } public Object getObj(int index) throws Exception{ if(index >= array.length ){ Exception e = new Exception("索引越界"); throw e; } return array[index]; } public int searchString(String s){ for(int i=0;i<array.length;i++){ if(array[i] instanceof String){ if(array[i].equals(s)){ return i; } } } return -1; } public int searchInteger(int num){ for(int i=0;i<array.length;i++){ if(array[i] instanceof Integer){ if(((Integer)array[i]).intValue() == num){ return i; } } } return -1; } public Object[] getArray(){ return array; }}ArrayTest.javapublic class ArrayTest { public static void main(String[] args) throws Exception { Object[] arr = new Object[100]; ArrayOper ao = new ArrayOper(arr); ao.setObj((Object)"hello", 99); ao.setObj((Object)1234, 77); ao.add(new String("你好")); int index = ao.searchString("hello"); int index2 = ao.searchInteger(1234); int index3 = ao.searchString("haha"); int index4 = ao.searchString("你好"); System.out.println(index); System.out.println(index2); System.out.println(index3 < 0 ? "未找到项" : index3); System.out.println(index4); System.out.println(ao.getObj(77)); System.out.println(ao.getObj(100)); }} ```````把二楼的部分代码改为List<Object> X = new ArrayList<Object>(); import java.util.ArrayList;import java.util.List;public class ArrayTest<T> { public List<T> array = new ArrayList<T>(); public void add(T obj){ if(obj!=null){ this.array.add(obj); } } public void remove(T obj){ if(obj!=null){ this.array.remove(obj); } } public boolean find(T obj){ boolean result = false; if(obj!=null){ result = this.array.contains(obj); } return result; } public static void main(String args[]){ ArrayTest<String> arr1 = new ArrayTest<String>(); arr1.add("a"); arr1.add("b"); System.out.println(arr1.find("b")); ArrayTest<Integer> arr2 = new ArrayTest<Integer>(); arr2.add(1); arr2.add(2); System.out.println(arr2.find(3)); }}如果用自定义类作为数组类型的话,自定义类需要重写equals方法。 谁有java的ngram的分词检索的源代码啊?(没有的话三元分词的源代码也行) table不显示 关与抽象类的问题 问一个似乎可笑的问题 给位请问JCreator是什么? 面试题 请高手指教 关于文件下载的问题!急(在线等待) 如何在MS的ACTIVE DIRECTORY中添加自定义属性 归档文件是什么玩意啊? 类的修饰符是否起主导作用? 做了这么长时间java开发居然发现自己不会这几道题,惭愧呀 java解析visio文件
private Object[] array;
private int length = 0;
private ArrayOper(){}
public ArrayOper(Object[] array) {
this.array = array;
if(array != null && array.length > 0){
length = array.length;
}
}
public int getLength() {
return length;
}
public void add(Object o){
if(length == 0){
array = new Object[10];
array[0] = o;
}else if(length > 0){
Object[] os = new Object[array.length + 1];
this.copyArray(os);
os[array.length] = o;
array = os;
length ++;
}
}
private void copyArray(Object[] os){
for(int i=0;i<array.length;i++){
os[i] = array[i];
}
}
public void setObj(Object o,int index) throws Exception{
if(index >= array.length ){
Exception e = new Exception("索引越界");
throw e;
}
array[index] = o;
}
public Object getObj(int index) throws Exception{
if(index >= array.length ){
Exception e = new Exception("索引越界");
throw e;
}
return array[index];
}
public int searchString(String s){
for(int i=0;i<array.length;i++){
if(array[i] instanceof String){
if(array[i].equals(s)){
return i;
}
}
}
return -1;
}
public int searchInteger(int num){
for(int i=0;i<array.length;i++){
if(array[i] instanceof Integer){
if(((Integer)array[i]).intValue() == num){
return i;
}
}
}
return -1;
}
public Object[] getArray(){
return array;
}
}ArrayTest.javapublic class ArrayTest {
public static void main(String[] args) throws Exception {
Object[] arr = new Object[100];
ArrayOper ao = new ArrayOper(arr);
ao.setObj((Object)"hello", 99);
ao.setObj((Object)1234, 77);
ao.add(new String("你好"));
int index = ao.searchString("hello");
int index2 = ao.searchInteger(1234);
int index3 = ao.searchString("haha");
int index4 = ao.searchString("你好");
System.out.println(index);
System.out.println(index2);
System.out.println(index3 < 0 ? "未找到项" : index3);
System.out.println(index4);
System.out.println(ao.getObj(77));
System.out.println(ao.getObj(100));
}
}
把二楼的部分代码改为
List<Object> X = new ArrayList<Object>();
import java.util.List;public class ArrayTest<T> {
public List<T> array = new ArrayList<T>();
public void add(T obj){
if(obj!=null){
this.array.add(obj);
}
}
public void remove(T obj){
if(obj!=null){
this.array.remove(obj);
}
}
public boolean find(T obj){
boolean result = false;
if(obj!=null){
result = this.array.contains(obj);
}
return result;
}
public static void main(String args[]){
ArrayTest<String> arr1 = new ArrayTest<String>();
arr1.add("a");
arr1.add("b");
System.out.println(arr1.find("b"));
ArrayTest<Integer> arr2 = new ArrayTest<Integer>();
arr2.add(1);
arr2.add(2);
System.out.println(arr2.find(3));
}
}
如果用自定义类作为数组类型的话,自定义类需要重写equals方法。