删除数组里的元素

安费诺 2010-05-28 04:22:03
int[] a={1,2,3,4,5};

我现在想删除 3

再输出这个数组{1,2,4,5}
而不是{1,2,4,5,5}
...全文
1172 30 打赏 收藏 转发到动态 举报
写回复
用AI写文章
30 条回复
切换为时间正序
请发表友善的回复…
发表回复
对空捣蛋 2011-11-14
  • 打赏
  • 举报
回复
今天就考了这道题
我很不幸......
NetMatrix 2010-05-28
  • 打赏
  • 举报
回复
路过,学习一下
shine333 2010-05-28
  • 打赏
  • 举报
回复
幼儿园老师对小朋友说:
“小朋友,老师给你5个苹果,你吃了一个,还有几个?”
小朋友:
“5个”
shine333 2010-05-28
  • 打赏
  • 举报
回复
安费诺 2010-05-28
  • 打赏
  • 举报
回复
刚才测试了一下,数组arr 的长度是4
但是为什么会是4呢???
安费诺 2010-05-28
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 keeya0416 的回复:]
数组大小不能变化,这个题目就只能新建一个数组把需要的数赋值进去返回给调用者了

Java code

public class Test {

public static void main(String[] args) {
int[] arr = {1,2,3,4,5};
arr = delArr(arr, 3);
for……
[/Quote]
我还想问一下,,这时候数组arr 的长度是 4 还是5
lodachi 2010-05-28
  • 打赏
  • 举报
回复
学习清洁工的方法:
		int[] a={1,2,3,4,5};
StringBuffer sb = new StringBuffer();
for(int i = 0; i < a.length; i++){
sb.append(",").append(a[i]);
}
System.out.println(sb.toString().replaceAll("3,", "").substring(1));
lodachi 2010-05-28
  • 打赏
  • 举报
回复
		int[] a={1,2,3,4,5};
StringBuffer sb = new StringBuffer();
for(int i = 0; i < a.length; i++){
sb.append(a[i]).append(",");
}
System.out.println(sb.toString().replaceAll("3,", ""));
ronniegxq 2010-05-28
  • 打赏
  • 举报
回复
同意一楼
focusforce 2010-05-28
  • 打赏
  • 举报
回复
public class ModifyArray
{
public static void main(String[] args)
{
int[] a = { 1, 2, 3, 4, 5 };
int index = binarySearch(a, 3);
int[] b = new int[a.length - 1];
for (int i = 0; i < a.length; i++)
{
if (i <= index)
{
b[i] = a[i];
}
else
{
b[i - 1] = a[i];
}
}
}

/**
* 二分查找
*
* @param a
* @param key
* @return
*/
public static int binarySearch(int[] a, int key)
{
if (a.length == 0)
return -1;
// 开始位置
int first = 0;
// 结束位置
int last = a.length - 1;
// 中间位置
int mid;
// 如果开始时,小于则结束.
while (first <= last)
{
mid = (first + last) / 2;
// 如果等于key,返回这个数在数组中的位置.
if (a[mid] == key)
return mid;
// 如果大于key,则在左边.
if (a[mid] > key)
last = mid - 1;
// 如果小于key,则在右边
if (a[mid] < key)
first = mid + 1;
}
return -1;
}

}
luqing414 2010-05-28
  • 打赏
  • 举报
回复

import java.util.ArrayList;
import java.util.List;

public class TestArray {
public static void main(String args[]){
int a[] ={1,2,3,4,5};
List<Integer> list = new ArrayList<Integer>();
for(int i = 0; i < a.length; i++)
list.add(a[i]);
list.remove(2);
System.out.println(list);
}
}
茫茫大海 2010-05-28
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 keeya0416 的回复:]
数组大小不能变化,这个题目就只能新建一个数组把需要的数赋值进去返回给调用者了

Java code

public class Test {

public static void main(String[] args) {
int[] arr = {1,2,3,4,5};
arr = delArr(arr, 3);
for……
[/Quote]
1楼正解!
keeya0416 2010-05-28
  • 打赏
  • 举报
回复
数组大小不能变化,这个题目就只能新建一个数组把需要的数赋值进去返回给调用者了

public class Test {

public static void main(String[] args) {
int[] arr = {1,2,3,4,5};
arr = delArr(arr, 3);
for (int i = 0; i < arr.length; i++) {
System.out.print(arr[i] + " ");
}
}

public static int[] delArr(int[] arr, int index){
int[] a = new int[arr.length - 1];
int temp = 0;
for(int i = 0; i < arr.length; i++){
if(arr[i] == index)
continue;
a[temp++] = arr[i];
}
return a;
}
}
Mark大先生 2010-05-28
  • 打赏
  • 举报
回复
三楼调用真是简单。
HappyKeKe 2010-05-28
  • 打赏
  • 举报
回复
[Quote=引用 7 楼 lodachi 的回复:]
学习清洁工的方法:

Java code
int[] a={1,2,3,4,5};
StringBuffer sb = new StringBuffer();
for(int i = 0; i < a.length; i++){
sb.append(",").append(a[i]);
}
……
[/Quote]


这个不错
whut_lcy 2010-05-28
  • 打赏
  • 举报
回复
每天回帖即可获得10分可用分!小技巧:教您如何更快获得可用分
l6801567 2010-05-28
  • 打赏
  • 举报
回复
	public static void main(String arg[]){
List<Integer> list=deleteArrayByObj(Arrays.<Integer>asList(1,2,3,4,5),3);
System.out.println(list);
}

public static List deleteArrayByObj(List srcList,Object obj){
List list=new ArrayList();
list.addAll(srcList);
if(list.contains(obj))
list.remove(obj);
return list;
}
l6801567 2010-05-28
  • 打赏
  • 举报
回复

int [] srcs={1,2,3,4,5};
int n=4;
if(n<srcs.length){
int [] tars=new int[4];
System.arraycopy(srcs, 0, tars, 0, n);
System.arraycopy(srcs, n+1, tars, n, srcs.length-n-1);
System.out.println(Arrays.toString(tars));
}
welllit 2010-05-28
  • 打赏
  • 举报
回复
学习清洁工的方法:
Java code int[] a={1,2,3,4,5};
StringBuffer sb = new StringBuffer();
for(int i = 0; i < a.length; i++){
sb.append(",").append(a[i]);
}
System.out.println(sb.toString().replaceAll("3,", "").substring(1));
Ade子夜 2010-05-28
  • 打赏
  • 举报
回复
先考虑你适合哪个方法!!适当折取!
如果对数据结构没有要求,可以考虑List对象,会自动帮你清理

如果只想用int[],那你只能自己写移动和清理的代码,数组对象本身不提供!!
加载更多回复(10)

62,614

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧