Java Test element in an array 
0
我想做的是:
| 12
 3
 4
 5
 6
 7
 8
 9
 10
 11
 12
 
 | for(String s :  myArray)
{
    if( s is in newArray) //how do you test this? i want something like
                        //if(newArray.indexOf(s)!=-1)
    {
        //do nothing
    }
    else
    {
        //add to newArray
    }
} | 
有人能帮忙吗?
 
| 12
 3
 4
 5
 6
 7
 8
 
 | if(newAray.contains(s)){
 //do nothing
 }
 else
 {
 //add to newArray
 }
 | 
		
		
- 它不起作用。我的编译器说"不能在数组类型string[]上调用contains(string)"。
- 对不起,达斯布林肯利思有答案。您需要在for(s:myarray):listtmp=new arraylist(arrays.aslist(newarray))之前执行此操作;
 
	 
不能随意向数组添加项,因为数组的大小是固定的。您需要先将数组转换为列表,然后将项添加到TE列表,最后将列表转换回数组:
| 12
 3
 4
 5
 6
 7
 
 | List< String>  tmp = new  ArrayList< String>(Arrays .asList( newArray));
for(String  s :  myArray) {
    if(! tmp.contains( s)) { 
        tmp.add( s);
    }
} 
newArray =  tmp.toArray(new String[ tmp.size()]); | 
		
		
- 实际上,如果他在做我认为他在做的事情,并且试图避免添加重复项,那么他可能会首先将其转换为set的实现。set是一个通用接口(很像list,其中linkedlist是一个实现),它不允许重复元素,因此您可以对myarray的每个元素调用set的add方法,并确保如果它已经在集合中,则它不会被添加两次。
- @使用集合的cosmiccomputer不是等效的,因为它不会在原始数组中保留重复项,也不会保留插入顺序(除非使用链接哈希集)。
- 我假设他不需要数组中的任何重复项,也不特别关心顺序。对不起,应该说的。这是从代码片段中粗略推断出来的。