vector v;//你的vector
TApple t;//你的条件TApple
for (int i=0;i<v.size();i++)
{
if(((TApple)v.get(i)).equals(t))
{
v.remove(i);
}
}
你要在你的TApple中写一个equals方法判断两个TApple是否相等
TApple t;//你的条件TApple
for (int i=0;i<v.size();i++)
{
if(((TApple)v.get(i)).equals(t))
{
v.remove(i);
}
}
你要在你的TApple中写一个equals方法判断两个TApple是否相等
解决方案 »
- 救命啊,疯了!struts.xml都删了,还能找到action!!!
- Spring——Bean的加载顺序和Tomcat有关?或者和系统有关?
- 在MyEclipse下怎么配置hibernate3.3
- xslt怎么用xsl:when?
- 华为一道框架笔试题,有兴趣的进来看看了
- struts 1.2的validate?
- JDBC的问题
- JTable焦点控制问题再问~~~~~~~~~
- 家好,请问j2ee技术中的ejb技术要实现一个remote接口 而rmi技术也需要实现远程接口。。请问有什么区别没有?
- hql agv() 如何返回带小数的平均值?
- 公司现在要搞EJB,不知道学EJB需要什么样的基础?
- [!!!急!!!]请问在JB7中怎样配置ORACLE8i与WebLogic6.1集成?
当vector中有几个不相临的符合条件的TApple时就会 出错
v.add("a");
v.add("b");
v.add("a");
v.add("b");
v.add("a"); int flag = 0;
for (int i=0;i<v.size();i++){
if(((String)v.get(i)).equals("a")){
v.remove(v.get(i));
i--;
}
}
System.out.println(v.toString[]);
vector v;//你的vector
TApple t;//你的条件TApple
int cnt=v.size();
for (int i=cnt-1;i>=0;i--)
{
if(((TApple)v.get(i)).equals(t))
{
v.remove(i);
}
}
for(int i=0;i<6;i++)
{
vec.add("aa"+i);
}
vec.add("aa0");
vec.add("aa0");
vec.insertElementAt("aa0",1);
vec.insertElementAt("aa0",1);
macoff(天堂)老兄,上面的这个做法,你的算法就会出问题
public class V
{
Vector v = new Vector();
V()
{
v.add("a");
v.add("b");
v.add("a");
v.add("c");
v.add("d");
int flag = 0;
int j=v.size();
for (int i=0;i<j;i++){
if(((String)v.get(i)).equals("a")){
v.remove(v.get(i));
j--;
System.out.println(v.elementAt(i)); }
}}
public static void main(String args[])
{
V v=new V();
}
}
{
private Vector vec;
public Untitled1()
{
vec = new Vector();
for(int i=0;i<6;i++)
{
vec.add("aa"+i);
}
vec.add("aa0");
vec.add("aa0");
vec.insertElementAt("aa0",1);
vec.insertElementAt("aa0",1);
}
public void calc()
{
int i=0;
int size = vec.size();
do
{
int j=i;
for(;j<size;j++)
{
String aa = (String)vec.elementAt(j);
if(aa.equals("aa0"))
{
vec.removeElement(aa);
break;
}
}
i = j;
size = vec.size();
System.out.println(j);
}while(i<vec.size());
for(i=0;i<size;i++)
{
String aa = (String)vec.elementAt(i);
System.out.println(aa);
}
}
public static void main(String[] args)
{
Untitled1 untitled11 = new Untitled1();
untitled11.calc2();
}
}
for(int i=0;i<j;i++)
{
String aa = (String)vec.elementAt(i);
if(aa.equals("aa0"))
{
vec.remove(i);
i--;
j--;
}
}
public class V
{
Vector v = new Vector();
V()
{
v.add("a");
v.add("b");
v.insertElementAt("a0",1);
int j=v.size();
for (int i=0;i<j;i++){
System.out.println(v.get(i));
if(((String)v.get(i)).equals("a")){
v.remove(v.get(i));
j--;
System.out.println("a 被删除了"); }
}
System.out.println("删除后的数据是:");
for(int k=0;k<j;k++)
{
System.out.println(v.elementAt(k));
}
}
public static void main(String args[])
{
V v=new V();
}
}
vec = new Vector();
for(int i=0;i<6;i++)
{
vec.add("aa"+i);
}
vec.add("aa0");
vec.add("aa0");
vec.insertElementAt("aa0",1);
vec.insertElementAt("aa0",1);
这样的情况我试了,也没有问题啊
这是处理前后的内容
[aa0, aa0, aa0, aa1, aa2, aa3, aa4, aa5, aa0, aa0]
[aa1, aa2, aa3, aa4, aa5]
你的算法中每次都要取vec.size(),影响效率啊,
int count = v.size();
for (int i=0;i<count;i++){
if(((String)v.get(i)).equals("a")){
v.remove(v.get(i));
i--;
count--;
}
}