A. 在java中,如何檢測一個數組中是否包含某一個數據
在Java中,檢測一個數組是否包含某一個數據,通常有四種方法:
(1)for循環
(2)轉換為List,調用Arrays.asList(arr).contains方法
(3)使用Set
(4)使用Arrays.binarySearch()方法
下面為上述四種方法的具體代碼實現:
1、使用for循環
publicstaticbooleanuseLoop(String[]arr,StringtargetValue){
for(Strings:arr){
if(s.equals(targetValue))
returntrue;
}
returnfalse;
}
/iknow-pic.cdn.bcebos.com/d62a6059252dd42a816ca8e00e3b5bb5c9eab810"target="_blank"title="點擊查看大圖"class="illustration_alink">/iknow-pic.cdn.bcebos.com/d62a6059252dd42a816ca8e00e3b5bb5c9eab810?x-bce-process=image%2Fresize%2Cm_lfit%2Cw_600%2Ch_800%2Climit_1%2Fquality%2Cq_85%2Fformat%2Cf_auto"esrc="https://iknow-pic.cdn.bcebos.com/d62a6059252dd42a816ca8e00e3b5bb5c9eab810"/>
2、轉換為List,調用Arrays.asList(arr).contains方法
publicstaticbooleanuseList(String[]arr,StringtargetValue){
returnArrays.asList(arr).contains(targetValue);
}
/iknow-pic.cdn.bcebos.com/8cb1cb1349540923258eca359f58d109b2de4992"target="_blank"title="點擊查看大圖"class="illustration_alink">/iknow-pic.cdn.bcebos.com/8cb1cb1349540923258eca359f58d109b2de4992?x-bce-process=image%2Fresize%2Cm_lfit%2Cw_600%2Ch_800%2Climit_1%2Fquality%2Cq_85%2Fformat%2Cf_auto"esrc="https://iknow-pic.cdn.bcebos.com/8cb1cb1349540923258eca359f58d109b2de4992"/>
3、使用Set
publicstaticbooleanuseSet(String[]arr,StringtargetValue){
SetStringset=newHashSetString(Arrays.asList(arr));
returnset.contains(targetValue);
}
/iknow-pic.cdn.bcebos.com/e61190ef76c6a7ef2dea016df0faaf51f2de66a9"target="_blank"title="點擊查看大圖"class="illustration_alink">/iknow-pic.cdn.bcebos.com/e61190ef76c6a7ef2dea016df0faaf51f2de66a9?x-bce-process=image%2Fresize%2Cm_lfit%2Cw_600%2Ch_800%2Climit_1%2Fquality%2Cq_85%2Fformat%2Cf_auto"esrc="https://iknow-pic.cdn.bcebos.com/e61190ef76c6a7ef2dea016df0faaf51f2de66a9"/>
4、使用Arrays.binarySearch()方法
特別說明:binarySearch()二分查找僅適用於有序數組,如果不是有序數組,則報異常
(String[]arr,StringtargetValue){
inta=Arrays.binarySearch(arr,targetValue);
if(a0){
returntrue;
}else{
returnfalse;
}}
/iknow-pic.cdn.bcebos.com/8ad4b31c8701a18bec0bbb04932f07082938fe9d"target="_blank"title="點擊查看大圖"class="illustration_alink">/iknow-pic.cdn.bcebos.com/8ad4b31c8701a18bec0bbb04932f07082938fe9d?x-bce-process=image%2Fresize%2Cm_lfit%2Cw_600%2Ch_800%2Climit_1%2Fquality%2Cq_85%2Fformat%2Cf_auto"esrc="https://iknow-pic.cdn.bcebos.com/8ad4b31c8701a18bec0bbb04932f07082938fe9d"/>
(1)javasetstring擴展閱讀:
Java種List列表的contains方法:
該方法是通過遍歷集合中的每一個元素並用equals方法比較是否存在指定的元素。
publicbooleancontains(Objecto){
IteratorEit=iterator();
if(o==null){
while(it.hasNext())
if(it.next()==null)
returntrue;
}else{
while(it.hasNext())
if(o.equals(it.next()))
returntrue;
}
returnfalse;
}
/iknow-pic.cdn.bcebos.com/64380cd7912397dd61e8334f5482b2b7d1a287ec"target="_blank"title="點擊查看大圖"class="illustration_alink">/iknow-pic.cdn.bcebos.com/64380cd7912397dd61e8334f5482b2b7d1a287ec?x-bce-process=image%2Fresize%2Cm_lfit%2Cw_600%2Ch_800%2Climit_1%2Fquality%2Cq_85%2Fformat%2Cf_auto"esrc="https://iknow-pic.cdn.bcebos.com/64380cd7912397dd61e8334f5482b2b7d1a287ec"/>
B. JAVA 找不到符號
public void setStirng(String mystring)
{
this.s = mystring();
}
SETSTRING的語句塊出現問題了撒。你傳的參數是一個字元串,怎麼會在使用的時候改成了函數了呢。mystring()的這種調用方式是一個以函數來進行調用的方式的。不能這樣寫的。。。
你如果想獲得mstring的話,那麼你就直接寫this.s = mystring就可以了撒。幹嘛非要加個括弧呢。
要是你真想加個括弧的話也不是不可以的。你再寫一個mystring的函數就可以了 的。然後在裡面進行一些操作也是可以的。。