導航:首頁 > 編程語言 > java數組中存在

java數組中存在

發布時間:2024-11-10 23:40:26

java 判斷一個數組中是否有重復的元素

使用一個臨時list,藉助list.contains判斷當前數組的值是否存在於list中,如果不存在則加入到list中,如果存在則記錄出來。有點像把一個籃子中的撞球放到另一個空籃子中,如果籃子裡面已經有的就不要再放進去了,沒有的,一個個放進去。說到底就是個遍歷和存在性判斷問題。

⑵ java判斷數組中是否包含


importjava.util.Arrays;

publicclassTest_Array{

publicstaticvoidmain(String[]args){
//TODOAuto-generatedmethodstub

int[]test={1,6,3,8,9,2,5};
Arrays.sort(test);//首先對數組排序
intresult=Arrays.binarySearch(test,5);//在數組中搜索是否含有5
System.out.println(result);//這里的結果是3

}
}

上面是一種辦法 當然辦法還多 比如你還可以把它 轉成 list容器 然後調用 contains方法

甚至你可以自己封裝個方法 循環一遍...

⑶ 在Java中判斷數組中包含某個元素的幾種方式的比較

直接上代碼:
package test.contain.lishaojie;
import java.util.Arrays;
import java.util.HashSet;
import java.util.Set;
public class TestContain {
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
String[] arr = new String[] { "DD", "CC", "DD", "FF", "KK"};
String target ="A";
int times = 1000;//次數
//轉換成list方式
long startTime = System.currentTimeMillis();
for (int i = 0; i < times; i++) {
ByList(arr, target);
}
long endTime = System.currentTimeMillis();
long ration = endTime - startTime;
System.out.println("list方式: " + ration / 1000000);

//轉換成set方式
startTime = System.currentTimeMillis();
for (int i = 0; i < times; i++) {
BySet(arr, target);
}
endTime = System.currentTimeMillis();
ration = endTime - startTime;
System.out.println("set方式: " + ration / 1000000);

//直接循環方式
startTime = System.currentTimeMillis();
for (int i = 0; i < times; i++) {
ByForLoop(arr, target);
}
endTime = System.currentTimeMillis();
ration = endTime - startTime;
System.out.println("循環方式: " + ration / 1000000);

//二分法查找
startTime = System.currentTimeMillis();
for (int i = 0; i < times; i++) {
ByArraysBinarySearch(arr, target);
}
endTime = System.currentTimeMillis();
ration = endTime - startTime;
System.out.println("二分法查找: " + ration / 1000000);
}
public static boolean ByList(String[] arr, String targetValue) {
return Arrays.asList(arr).contains(targetValue);
}
public static boolean BySet(String[] arr, String targetValue) {
Set<String> set = new HashSet<String>(Arrays.asList(arr));
return set.contains(targetValue);
}
public static boolean ByForLoop(String[] arr, String targetValue) {
for(String s: arr){
if(s.equals(targetValue))
return true;
}
return false;
}
public static boolean ByArraysBinarySearch(String[] arr, String targetValue) {
int a = Arrays.binarySearch(arr, targetValue);
if(a > 0)
return true;
else
return false;
}
}
運行結果如下:
list方式: 5
set方式: 22
循環方式: 2
二分法查找: 3
經過大量數據測試循環方式效率最高,其次是二分法,最後是list,和set因為因為將數組壓入Collection類型中,首先要將數組元素遍歷一遍,然後再使用集合類做其他操作。但是list方式明顯要比set方式快很多,這是為什麼呢?直接看代碼:首先
@SafeVarargs
@SuppressWarnings("varargs")
public static <T> List<T> asList(T... a) {
return new ArrayList<>(a);
}
返回的是ArrayList所以set方式還要進行一次操作將ArrayList轉換成set,
public HashSet(Collection<? extends E> c) {
map = new HashMap<>(Math.max((int) (c.size()/.75f) + 1, 16));
addAll(c);
}
之一addAll方法:
public boolean addAll(Collection<? extends E> c) {
boolean modified = false;
for (E e : c)
if (add(e))
modified = true;
return modified;
}
又一次進行了選環,所以效率比較低,binggo

⑷ (java)搜索一個字元數組中是否存在某個字元。如存在,返回該字元在數組中第一次出現的位置,否則返回-1.

public class Test {
public static void main(String[] args) {
String[] arr=new String[]{"a","b"};
System.out.println(find(arr, "c"));
}
public static int find(String[] arr,String str){
boolean flag=false;
for (int i = 0; i < arr.length; i++) {
if (arr[i].equals(str)) {
flag=true;
return i;
}
}
if (flag==false) {
return -1;
}
return -1;
}
}

⑸ 在Java中,如何檢測一個數組中是否包含某一個數據

在Java中,你需要確定一個數組是否包含特定的數據,有多種方法可供選擇。以下是四種常見的實現策略:

首先,你可以使用for循環遍歷數組,逐個比較元素,如以下代碼所示:

1.使用for循環

publicstaticbooleanuseLoop(String[]arr,StringtargetValue){

for(Strings:arr){

if(s.equals(targetValue)){

returntrue;

}

}

returnfalse;

}

另一種方法是將數組轉換為List,然後利用List的contains方法,代碼如下:

2.轉換為List並使用contains方法

publicstaticbooleanuseList(String[]arr,StringtargetValue){

returnArrays.asList(arr).contains(targetValue);

}

Set集合也可以用來檢測元素是否存在,由於Set不允許重復元素,所以這種方法適合於不需要重復元素的場景:

3.使用Set

publicstaticbooleanuseSet(String[]arr,StringtargetValue){

Setset=newHashSet<>(Arrays.asList(arr));

returnset.contains(targetValue);

}

最後,如果你的數組是有序的,可以使用Arrays.binarySearch()方法進行二分查找,但請注意,它只適用於有序數組:

4.使用Arrays.binarySearch()方法(適用於有序數組)

(String[]arr,StringtargetValue){

inta=Arrays.binarySearch(arr,targetValue);

returna>=0;

}

總的來說,選擇哪種方法取決於你的具體需求,如是否需要處理重復元素,數組是否有序等。在實際編程時,可以根據這些方法的優缺點來作出決定。

⑹ 在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"/>

(6)java數組中存在擴展閱讀:

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"/>

⑺ java中怎麼判斷一個字元串是否存在數組中

有2種方法,第一種就是直接循環數組,逐個進行判斷。第二種就是先將數組轉換成list,再使用list的contains方法進行匹配判斷。

String[] arrStr = {"aser", "abc"};
for (String str : arrStr) {
if (str.contains("abc")) {
return true;
}
}
public static void main(String[] args) {
String aa []={"aaa","bbb","ccc","ddd"};
List<String> list=Arrays.asList(aa);
if(list.contains("aa")){
System.out.println("有aa");
}else{
System.out.println("沒有aa");
}
}

⑻ java中數組有哪些

Java中的數組有以下幾類:

一、基本類型數組(Primitive Arrays)

在Java中,基本類型的數組是固定大小的數組,其元素類型是固定的。Java支持以下基本類型的數組:int數組、char數組、float數組、double數組、boolean數組等。此外,Java也支持其他基本數據類型對應的包裝類數組,如Integer數組等。這些基本類型的數組可以存儲相應的基本數據類型的數據。例如,int數組可以存儲整數數據。

二、對象數組(Object Arrays)

在Java中,對象數組是一種特殊的數組類型,可以存儲任何類型的對象引用。對象數組的元素可以是任何對象類型,包括自定義的類實例。創建對象數組時,需要指定元素的類型為Object。例如,Object[] arr = new Object[10];表示創建一個可以存儲10個對象的對象數組。需要注意的是,對象數組中存儲的是對象的引用,而非對象本身。

三、多維數組(Multi-dimensional Arrays)

除了上述的基本類型數組和對象數組外,Java還支持多維數組。多維數組可以看作是一個數組的數組的數組,具有多個維度。常見的多維數組有二維數組和三維數組等。多維數組的創建和使用方式較為復雜,需要指定每個維度的長度和元素類型。例如,int[][] matrix表示一個二維整型數組(矩陣)。每個元素又是一個整型數組,可以用於存儲行內數據。二維數組廣泛應用於矩陣運算和數據處理等場景。通過多維數組的嵌套循環可以方便地訪問和操作每個元素。在Java中創建多維數組的語法較為復雜,需要注意每個維度的初始化和訪問方式。多維數組的每一個維度都有自己獨立的存儲空間和管理方式。在進行操作時,需要根據具體的需求選擇合適的維度進行訪問和操作。此外,多維數組的創建和使用還需要考慮內存分配和性能優化等問題。因此在實際應用中需要根據具體情況進行選擇和實現。

閱讀全文

與java數組中存在相關的資料

熱點內容
命令行讀文件 瀏覽:350
phpjson轉多維數組 瀏覽:910
linuxboot修復 瀏覽:843
程序在線編譯系統的設計與實現 瀏覽:722
電腦c盤記錄存在哪個文件夾 瀏覽:155
演算法分析與設計替換方法 瀏覽:850
老程序員丟失手機 瀏覽:272
新世紀日本語pdf 瀏覽:85
基於單片機的數字示波器 瀏覽:36
登qq伺服器連接中什麼意思 瀏覽:436
表格宏命令 瀏覽:994
肯德基app設定在哪裡 瀏覽:472
蘋果電腦文件夾怎麼添加列印機 瀏覽:701
pythonswagger 瀏覽:235
作業打卡解壓素材 瀏覽:159
pdf導入ibooks 瀏覽:577
xps文件轉pdf 瀏覽:134
怎麼樣獲得命令方塊 瀏覽:899
安卓studio如何改主題 瀏覽:933
linux自動獲取ip命令行 瀏覽:208