题目:编写一个工具类,该工具类内包含一个数组属性,可以调用该工具类的add()方法向该工具类中的数组里添加元素,添加的元素可以是任意类型,调用get(下标)方法可以取出某个元素,调用size方法可以返回已添加的元素数目。以下是我的代码:
import java.util.Scanner;
public class Tool
{
private int size;
private Object[] array=new Object[3];
public boolean add(Object element) {
//ensureCapacity(size+1);
this.array[this.size++]=element;
return true;}
/* public void ensureCapacity(int minCapacity)
{int oldCapacity = array.length;
if (minCapacity > oldCapacity){Object oldData[] = array;
int newCapacity = (oldCapacity * 3)/2 + 1;
if (newCapacity < minCapacity)
newCapacity = minCapacity;
array = new Object[newCapacity];
System.arraycopy(oldData, 0, array, 0, size);}} */
//以上注释中代码是Java中ArrayList类的自动变长机制
public void get(int number) {
for (int i=0;i<size;i++)
{
if (number==size)
array[number]=array[size];
}
System.out.println("您取出的元素为:"+array[number]);
}
public void size() {
System.out.println("您已添加"+size+"个元素");
}
public static void main(String[] args)
{
Tool a=new Tool();
String confirm="Y";
boolean flag=true;
Scanner input=new Scanner(System.in);
while(flag) {
System.out.print("请输入您要添加的元素:");
a.add(input.next());
System.out.print("请问您还要继续输入吗?继续输入请按Y,返回菜单请按任意键");
if (confirm==input.next()) flag=true;
else flag=false;}
System.out.println("请输入您要取出的元素序号:");
a.get(input.nextInt());
a.size();
}
}
以上就是我的代码,我现在代码中的数组长度是定死的,但是我想要实现数组长度是动态的,也就是达到ArrayList类的功能,整道题目就是做一个简易的ArrayList类;以上代码编译没有错误,但是运行不能达到我想要的效果以及题目的效果。请各位高手前辈予以指教,不甚感激!
谢谢,那我初始化数组的时候还是定死数组的长度,然后在主程序中判断if(size>3) a.expan();再在expand方法里面new一个数组Object[] array=new Object[2*size];利用copyOf拷贝一下达成扩容,对吧?
一道简单的有关数组的Java程序题,请高手前辈们帮忙查看一下代码,谢谢...
一道简单的有关数组的Java程序题,请高手前辈们帮忙查看一下代码,谢谢! 题目:编写一个工具类,该工具类内包含一个数组属性,可以调用该工具类的add()方法向该工具类中的数组里添加元素,添加的元素可以是任意类型,调用get(下标)方法可以取出某个元素,调... 题目:编写一个工具类,该工具类内包含一个数组属性,可以调...
JAVA编程问题求大神帮忙看看解答谢谢!
for(String strone : str){ System.out.println(strone);} } 以上我的代码供参考 你的问题:1 、定义的数组类型有问题 讲解:字符数组用该用char 或者String 你这个由于是中文字符串,所以用String char 和String 定义是需要引号引起来,2 、java中,结束一段表达式的时候要用英文的分号结...
给定一个数组,找出其中最大的值及其位置 用Java编写代码
java编写程序,找出一维数组中元素的最大值和最小值:方法1:import java.util.*;public class Main{public static void main (String args[ ]) { int a1[ ]=new int[] {5,3,6,8,10,56};Arrays.sort(a1);System.out.println("最大值:"+a1[a1.length-1]);System.out.println("最小...
问一道JAVA初学者的数组题!
public class ArrayTest { public static void main(String[] args) { int[] arrBefore=new int[]{85,63,49,22,10};int number=40;boolean inserted=false;int[] arrAfter=new int[arrBefore.length+1];for (int i = 0,j=0; i < arrBefore.length; ) { if(inserted || arrBefore[...
java怎么对数组里面的数据进行增,删,查,改。求一个简单的例子有代码的...
批量删除delete(a,2)删除所有a[i]=2的数据,即a[2] 、a[6]、 a[7]删除 原题就这么写的,两个方法名一样,参数一样,功能却不一样。class TestArray{ public static void main(String[]args){ int[] a ={0,1,2,3,4,5,2,2,1};print(add(a,9,2));print(delete(a,3));sele...
一个JAVA输出二维数组的简单程序看看有什么问题,谢谢
其实解决方法真的非常非常简单……就是将你的一句for(String[] b1:A[i][j])改为for(String[] b1:A)就可以了。以下是改好了的代码(附上了错处的说明):public class ArrayInit { String[][] A = new String[4][4];public void printString(){ for(int i=0;i<=4;i++){ for(...
。java基础编程练习题,这题怎么做。问前辈详细代码。开始位置+10超过字 ...
import java.io.FileInputStream;import java.io.FileNotFoundException;import java.io.FileReader;import java.io.IOException;import java.io.Reader;public class IO { public static void main(String[] args){ Reader fr = null;int length = 0;char[] ch = null;try { fr = new FileReader...
JAVA二维数组的一个很简单的问题,我是初学者,我实在想不通,帮我解答...
myarr是一个二维数组 数组0的值是{19,1} 数组1的值是{48,11} 现在访问的是myarr[1][1] 肯定就是访问数组1的值1 所以肯定是11了 每个值都是独立的 为什么改前三个会影响到最后的那个 你要这么说我反而觉得很想不通 感觉你应该是基础比较差 没正式学过编程 就开始看代码的类型 还是老老...
JAVA题,高手帮忙,谢谢
第二题 其实就是将输入中的r变h,在谭浩强的c课本上有个类似的例子,只不过是计算单词的个数,你可以根据这个改编一下,注意判断r然后根据ASCII转换为h就可以了 第三题 var myarray:Array=new Array("1","2","3","4","5","6","7","8","9");for(i=0;i<10;i++){ for(j=10-...
关于JAVA中数组排序的问题?
import java.util.*;public class Zhidao { \/\/选择排序 public static void sort(int[] arr) { \/\/输出原始数据 System.out.println("排序前");for(int d:arr)System.out.printf("%4d",d);int temp=0;\/\/临时变量,用于交换 \/\/过程,从0~9开始,每次找最小的放的前面 for(int i=0;i<...