//倒过来遍历list for(int j=listb.size()-1;j>=0;j--) { lista.remove((int)listb.get(j)); } final int size = lista.size(); a = (String[])lista.toArray(new String[size]);
public static String[] deleteAt(String[] bs, int index) { int length = bs.length - 1; String[] ret = new String[length]; System.arraycopy(bs, 0, ret, 0, index); System.arraycopy(bs, index + 1, ret, index, length - index); return ret; }//index填入你要删除的序号
public String[] delByte(int index, String[] b) { String[] b2 = new String[b.length]; int j = 0; for (int i = 0; i < b.length; i++) { if (i == index) continue; j++; b2[j] = b[i];
楼主【tcx1986】截止到2008-07-08 16:54:42的历史汇总数据(不包括此帖):
发帖的总数量:6 发帖的总分数:120 每贴平均分数:20
回帖的总数量:7 得分贴总数量:1 回帖的得分率:14%
结贴的总数量:5 结贴的总分数:20
无满意结贴数:4 无满意结贴分:300
未结的帖子数:1 未结的总分数:100
结贴的百分比:83.33 % 结分的百分比:16.67 %
无满意结贴率:80.00 % 无满意结分率:1500.00%
楼主加油
String[] a={1,2,3,4,5,6,7,8,9};
String[] b={1,3,6};
for(int i;i<b.length;i++){
a.remove(b[i]);//其实没有remove方法,我就不转型了
}
return a;
这样返回的是
a={1,3,4,6,7,8}
我要的是a={1,3,5,6,8,9}
数组不可被改变...
你要的这个方法就是链表的概念
也就是LinkedList非要用数组做的,只有新建一个数组,把原来数组的值一个一个复制过去
List list=new ArrayList();//最后的结果
for(int i=0;i<a.length;i++){
if(b.contain(i)){//查看b数组中是否包括了i当前值 ,这个方法需要自己实现
continue;//包括了 忽略该值
}else{
list.add(a[i]);//没有包括,将该值取出
}
}
String[] filter(){ ArrayList a=new ArrayList();
for(int i=0;i<a.length;i++){
boolean find=false;
for(int j=0;j<b.length;j++){
if(a[i].equals(b[j])){
find=true;
break;
}
}
if(false==find)
a.add(a[i]);
}
return a.toArray(new String[]{})
}
public static void main(String[] args) {
String[] a = { "1", "2", "3", "4", "5", "6", "7", "8", "9" };
int[] b = { 0, 3, 6 };// 可能会变化
// 怎么移除a[1和3和6]中的元素变为a={1,3,5,6,8,9...}
String[] a0 = new String[a.length - b.length]; int currentIndex = 0;
for (int i = 0; i < b.length; i++) {
for (int j = (i == 0 ? 0 : b[i - 1] + 1); j < b[i]; j++) {
a0[currentIndex++] = a[j];
}
p(a0);
} for (int i = b[b.length - 1] + 1; i < a.length; i++) {
a0[currentIndex++] = a[i];
}
p(a0);
} private static void p(String[] ss) {
for (String s : ss) {
System.out.print(s + "\t");
}
System.out.println();
}
}
public static void main(String[] args) {
String[] a = { "1", "2", "3", "4", "5", "6", "7", "8", "9" };
int[] b = { 0, 3, 6 };// 可能会变化
// 怎么移除a[1和3和6]中的元素变为a={1,3,5,6,8,9...}
String[] a0 = new String[a.length - b.length]; int currentIndex = 0;
for (int i = 0; i < b.length; i++) {
for (int j = (i == 0 ? 0 : b[i - 1] + 1); j < b[i]; j++) {
a0[currentIndex++] = a[j];
}
p(a0);
} for (int i = b[b.length - 1] + 1; i < a.length; i++) {
a0[currentIndex++] = a[i];
}
p(a0);
} private static void p(String[] ss) {
for (String s : ss) {
System.out.print(s + "\t");
}
System.out.println();
}
}
import java.util.List;public class Test1 {
public static void main(String[] args) {
String[] a = { "1", "2", "3", "4", "5", "6", "7", "8", "9" };
int[] b = { 1, 3, 6 }; List<String> lista=new ArrayList<String>();
//List<String> lista = Arrays.asList(a);
//List listb = Arrays.asList(b);
for(int i=0;i<a.length;i++)
lista.add(a[i]); for(int j=0;j<b.length;j++)
{
lista.remove(b[j]-j);
}
final int size = lista.size();
a = (String[])lista.toArray(new String[size]);
for(int i=0;i<a.length;i++)
System.out.println(a[i]); }}输出:
1
3
5
6
8
9
import java.util.Arrays;
import java.util.Collection;
import java.util.Collections;
import java.util.List;public class Test1 {
public static void main(String[] args) {
String[] a = { "1", "2", "3", "4", "5", "6", "7", "8", "9" };
int[] b = { 1, 3, 6 }; List<String> lista=new ArrayList<String>();
for(int i=0;i<a.length;i++)
lista.add(a[i]);
List<Integer> listb =new ArrayList<Integer>();
for(int i=0;i<b.length;i++)
listb.add(b[i]);
Collections.sort(listb);//防止b变化
//倒过来遍历list
for(int j=listb.size()-1;j>=0;j--)
{
lista.remove((int)listb.get(j));
}
final int size = lista.size();
a = (String[])lista.toArray(new String[size]);
for(int i=0;i<a.length;i++)
System.out.println(a[i]); }}
import java.util.Arrays;
import java.util.Collection;
import java.util.Collections;
import java.util.HashSet;
import java.util.List;
import java.util.Set;public class Test1 {
@SuppressWarnings({ "unchecked", "unchecked" })
public static void main(String[] args) {
String[] a = { "1", "2", "3", "4", "5", "6", "7", "8", "9" };
int[] b = { 1,1,3,6 }; List<String> lista=new ArrayList<String>();
for(int i=0;i<a.length;i++)
lista.add(a[i]);
List<Integer> listb =new ArrayList<Integer>();
for(int i=0;i<b.length;i++)
listb.add(b[i]);
//防止重复
Set set = new HashSet(listb);
listb=new ArrayList(set);
Collections.sort(listb);
//倒过来遍历list
for(int j=listb.size()-1;j>=0;j--)
{
lista.remove((int)listb.get(j));
}
final int size = lista.size();
a = (String[])lista.toArray(new String[size]);
for(int i=0;i<a.length;i++)
System.out.println(a[i]); }}输出:
1
3
5
6
8
9
{
int length = bs.length - 1;
String[] ret = new String[length];
System.arraycopy(bs, 0, ret, 0, index);
System.arraycopy(bs, index + 1, ret, index, length - index);
return ret;
}//index填入你要删除的序号
{
String[] b2 = new String[b.length];
int j = 0;
for (int i = 0; i < b.length; i++)
{
if (i == index) continue;
j++;
b2[j] = b[i];
}
return b2;
}
这个也可以