扫二维码与项目经理沟通
我们在微信上24小时期待你的声音
解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流
java数组插入实现思路:
创新互联是一家专注于成都网站设计、网站制作、外贸营销网站建设与策划设计,瑞丽网站建设哪家好?创新互联做网站,专注于网站建设十载,网设计领域的专业建站公司;建站业务涵盖:瑞丽等地区。瑞丽做网站价格咨询:18982081108
可以把某个整数插入到整型数组的特定位置,数组中原有元素向后移动
删除方法:能够从整形数组中特定位置删除掉一个元素,数组中原有元素向前移动
程序代码:
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();
}
}
测试结果:
File
F=new
File(路径);/通过将给定路径名字符串转换为抽象路径名来创建一个新
File
实例。
F.delete();//删除此抽象路径名表示的文件或目录。
文件的移动的话,得通过输入输出流
FileInputStream
FI=new
FileInputStream(F);
FileOutputStream
FO=new
FileOutputStream(F);
wile(FI.read()!=EOF)
{
FO.write();
}
经常我们要删除集合中的某些元素 有些可能会这么写
复制代码 代码如下: public void operate(List list){ for (Iterator it = list iterator(); it hasNext();) { String str = (String)it next(); if (str equals("chengang")){ list remove(str); } } }
这种写法一运行就会报如下异常
Exception in thread "main" java util ConcurrentModificationException at java util AbstractList$Itr checkForComodification(AbstractList java: )
因为list在循环中的时候是不可以删除它的元素的 后来我是这样做的 一种很笨的方法 思路是这样的 创建一个List专门存放要被删除的元素 循环过后 用List removeAll方法把元素删除 代码如下
复制代码 代码如下: public void operate(List list){ List removeList= new ArrayList(); for (Iterator it = list iterator(); it hasNext();) { String str = (String)it next(); if (str equals("chengang")){ removeList add(str); } } list removeAll(removeList); }
这样也确实可以解决问题了 但是方法实在太笨重 其实可以有更简单的更高效的方法 就是用Iterator remove方法 如下
复制代码 代码如下: for (Iterator it = list iterator(); it hasNext();) { String str = (String)it next(); if (str equals("chengang")){ it remove(); } } lishixinzhi/Article/program/Java/JSP/201311/19832
我们在微信上24小时期待你的声音
解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流