十年网站开发经验 + 多家企业客户 + 靠谱的建站团队
量身定制 + 运营维护+专业推广+无忧售后,网站问题一站解决
你写的这个太混乱,逻辑也乱.我就不给你改代码了,直接提供思路.
公司主营业务:成都网站建设、做网站、移动网站开发等业务。帮助企业客户真正实现互联网宣传,提高企业的竞争能力。创新互联公司是一支青春激扬、勤奋敬业、活力青春激扬、勤奋敬业、活力澎湃、和谐高效的团队。公司秉承以“开放、自由、严谨、自律”为核心的企业文化,感谢他们对我们的高要求,感谢他们从不同领域给我们带来的挑战,让我们激情的团队有机会用头脑与智慧不断的给客户带来惊喜。创新互联公司推出汉台免费做网站回馈大家。
实现删除功能,定义数组的时候数组长度应该为总共村存储的DVD数量+1.例如存储6张,长度为7.
在删除之前先输入DVD名称进行循环查找,未赋值的数组成员值为null,当查找到null的时候将下标赋值给一个变量index.并且break.
进行判断.如果index == 6.说明遍历数组以后没任何一个存储的DVD可以与之对应,那么就提示用户.删除的DVD不存在.如果不等于,判断是否已借出.如果借出,提示用户DVD已借出无法删除.否则进入4.
执行循环,将从index开始的所有DVD信息值全部往前覆盖.
for(int i = index;idvd.name.length - 1;i++){
dvd[i].name = dvd[i + 1].name;
dvd[i].state = dvd[i + 1].state;
dvd[i].date = dvd[i + 1].date;
}
希望对你有所帮助,欢迎追问.
代码如下:
public class Main {
public static void main(String[] args) {
int[] a = new int[]{92, 87, 2, 3, 4, 6, 7, 8, 22, 9, 12, 16, 20, 66, 23};
findNum(a, 6);
findNum(a, 300);
}
private static void findNum(int[] a, int num) {
for (int i = 0; i a.length; i++) {
if (a[i] == num) {
System.out.println("在数组中找到了" + num + ",位于数组的" + i + "位置");
return;
}
}
System.out.println("数组中没有" + num + "这个数字");
}
}
运行结果:
第一题:
int[] arr={52,26,97,19,66,8,49};
void arrayAdd()//将200插入26之后(第三位)
{
//通过System.arraycopy方法实现数组的复制
int[] arr2=new int[arr.length+1];
System.arraycopy(arr,0,arr2,0,2);
arr2[2]=200;
System.arraycopy(arr,2,arr2,3,5);
//输出结果
for(int i=0;iarr2.length;++i)
{
System.out.println(arr2[i]);
}
}
第二题和第三题用这个方法就可以了:
int[] arr3={12,34,97,154,64,85,445};
/**删除数组的指定内容
* @param index要删除的下标(要删除97则传入3)
* @param arr 要删除的数组
*/
void arrarRemove(int index,int[] arr)
{
int[] array=new int[arr.length-1];
System.arraycopy(arr,0,array,0,index-1);
System.arraycopy(arr,index,array,index-1,arr.length-index);
// 输出结果
for(int i=0;iarray.length;++i)
{
System.out.println(array[i]);
}
}
没耽误你吧?但也你能采纳。
public static int[] insert(int[] a,int value,int index){
int aindex = a.length;
int[]b = new int[aindex+1];
for(int j=aindex;j=0;j--){
if(jindex){
b[j]=a[j-1];
}else if(index==j){
b[j]=value;
}else{
b[j]=a[j];
}
}
return b;
}//插入数据
其他雷同 删除思路为 int[] b的长度是a.length-1;
批量删除的思路为先计算a[i] = value的数量 然后 Int[] b的长度为a[]的长度减去该数量 做循环,判断。。记得从尾部开始定义数值。
java数组插入实现思路:
可以把某个整数插入到整型数组的特定位置,数组中原有元素向后移动
删除方法:能够从整形数组中特定位置删除掉一个元素,数组中原有元素向前移动
程序代码:
InsertDelete.java:
package p1;
import com.kettas.common.*;
import java.util.*;
public class InsertDelete
{
static int[] a={4,2,7,3,5};//初始数组
static int sum=5;//数组的有效位数
public static void main(String[] args)
{
System.out.println("初始数组为:");
output();
while(true)
{
System.out.println("操作:1:插入;2:删除;3:退出");
int option=SystemIn.readInt();
if(option==1)
{
System.out.println("请输入插入的位置:");
int pos=SystemIn.readInt();
System.out.println("请输入要插入的数:");
int num=SystemIn.readInt();
add(pos,num);
System.out.println("插入后的数组为:");
output();
}
else if(option==2)
{
System.out.println("请输入要删除的数的位置:");
int pos1=SystemIn.readInt();
move(pos1);
System.out.println("删除后的数组为:");
output();
}
else
break;
}
}
static void add(int pos,int num)
{ //将num插入到数组的第pos下标中,其他元素向后移动
if(sum == a.length)
{ // 扩充数组空间
a=Arrays.copyOf(a,a.length*2);
}
for(int i=sum;ipos;i--)
{
a[i]=a[i-1];
}
a[pos]=num;
sum++; //有效位数加1
}
static void move(int pos)
{ //删除数组中下标为pos的元素
sum--; //有效位数减1
for(int i=pos;isum;i++)
{
a[i]=a[i+1];
}
}
static void output()
{ // 遍历输出数组中的元素
for(int i=0;isum;i++)
{
System.out.print(a[i]+" ");
}
System.out.println();
}
}
测试结果: