導航:首頁 > 編程語言 > 數組中查找數組的java

數組中查找數組的java

發布時間:2022-08-22 16:19:44

1. java在數組里查找數據

在你查找的輸入數字那段程序中,你看下,直接就是查找到一個然後程序就跳出來了,此時最好的方法是在程序前面定義一個數組,因為你不確定有多少個你要查找的數,該數組用來存儲對應查找的數位置,
你再查詢那段程序改下,讓其不要查找到一個就跳出,而是用一直查找到數組最後,程序我不給你寫了,你先自己試試看看,不行的話,再幫你,畢竟自己實踐是最好的!

2. java中如何查找數組中某個元素

public static void main(String[] args) {
//定義並初始化數組
int[] arr = {22,33,44,55,66,7,2,5,24};
//定義並初始化Scanner對象,用於獲取輸入鍵盤輸入的內容
Scanner scanner = new Scanner(System.in);
//輸出信息
System.out.print("請輸入需要查找的數字:");
//獲取鍵盤輸入要查找的數字
int target = scanner.nextInt();
//循環數組
for(int i = 0; i < arr.length; i++) {
//如果輸入的數字跟當前數組的元素的值相同
if(target == arr[i]) {
//輸入所在位置,從1開始
System.out.println(target + "位於數字的第" + (i + 1) + "位");
//結束
return;
}
}
//如果找不到的話就提示一下
System.out.println("數組中不存在數字:" + target);
}

3. java中怎麼實現查找某個數組里的string值

如何檢查一個未排序的數組中是否包含某個特定值,這是一個在Java中非常實用並且頻繁使用的操作。另外,這也是Stack
Overflow上面非常受關注的問題。在得票數最多的答案中,可以看到,檢查數組中是否包含特定值可以用多種不同的方式實現,但是時間復雜度差別很大。
下面,我將為大家展示各種方法及其需要花費的時間。

1.檢查數組中是否包含特定值的四種不同方法

1)使用List:

public static boolean useList(String[] arr, String targetValue) {
return Arrays.asList(arr).contains(targetValue);
}

2)使用Set:

public static boolean useSet(String[] arr, String targetValue) {
Set<String> set = new HashSet<String>(Arrays.asList(arr));
return set.contains(targetValue);
}

3)使用一個簡單循環:

public static boolean useLoop(String[] arr, String targetValue) {
for(String s: arr){
if(s.equals(targetValue))
return true;
}
return false;
}

4)使用Arrays.binarySearch():

註:下面的代碼是錯誤的,這樣寫出來僅僅為了理解方便。binarySearch()只能用於已排好序的數組中。所以,你會發現下面結果很奇怪。

public static boolean useArraysBinarySearch(String[] arr, String targetValue) {
int a = Arrays.binarySearch(arr, targetValue);
if(a > 0)
return true;
else
return false;
}

2.時間復雜度

通過下面的這段代碼可以近似比較幾個方法的時間復雜度。雖然分別搜索一個大小為5、1K、10K的數組是不夠精確的,但是思路是清晰的。

public static void main(String[] args) {
String[] arr = new String[] { "CD", "BC", "EF", "DE", "AB"};

//use list
long startTime = System.nanoTime();
for (int i = 0; i < 100000; i++) {
useList(arr, "A");
}
long endTime = System.nanoTime();
long ration = endTime - startTime;
System.out.println("useList: " + ration / 1000000);

//use set
startTime = System.nanoTime();
for (int i = 0; i < 100000; i++) {
useSet(arr, "A");
}
endTime = System.nanoTime();
ration = endTime - startTime;
System.out.println("useSet: " + ration / 1000000);

//use loop
startTime = System.nanoTime();
for (int i = 0; i < 100000; i++) {
useLoop(arr, "A");
}
endTime = System.nanoTime();
ration = endTime - startTime;
System.out.println("useLoop: " + ration / 1000000);

//use Arrays.binarySearch()
startTime = System.nanoTime();
for (int i = 0; i < 100000; i++) {
useArraysBinarySearch(arr, "A");
}
endTime = System.nanoTime();
ration = endTime - startTime;
System.out.println("useArrayBinary: " + ration / 1000000);
}

結果:

useList: 13
useSet: 72
useLoop: 5
useArraysBinarySearch: 9

對於長度為1K的數組:

String[] arr = new String[1000];

Random s = new Random();
for(int i=0; i< 1000; i++){
arr[i] = String.valueOf(s.nextInt());
}

結果:

1
2
3
4

useList: 112
useSet: 2055
useLoop: 99
useArrayBinary: 12

對於長度為10K的數組:

String[] arr = new String[10000];

Random s = new Random();
for(int i=0; i< 10000; i++){
arr[i] = String.valueOf(s.nextInt());
}

結果:

useList: 1590
useSet: 23819
useLoop: 1526
useArrayBinary: 12

很明顯,使用簡單循環的方法比使用其他任何集合效率更高。許多開發者會使用第一種方法,但是它並不是高效的。將數組壓入Collection類型中,需要首先將數組元素遍歷一遍,然後再使用集合類做其他操作。

如果使用Arrays.binarySearch()方法,數組必須是已排序的。由於上面的數組並沒有進行排序,所以該方法不可使用。

實際上,如果你需要藉助數組或者集合類高效地檢查數組中是否包含特定值,一個已排序的列表或樹可以做到時間復雜度為O(log(n)),hashset可以達到O(1)。

4. java怎麼 在數組 查找元素

1
遍歷數組判斷
2
從開始就把數組的內容按照你要查找的那個條件的順序排列存儲,然後
二分法查找
。Arrays類有相關實現,可以參考。或者可以直接用,但是注意使用條件,很重要。

5. Java數組查找程序的問題!

數組是
從0開始

也就是說第一個元素的下標是0
在輸出的時候會從第0位輸出數值,i+1是為了讓我們看著好看是第0個元素下標加1
就是第一個元素了

6. Java數組中查找

binarySearch
public static int binarySearch(Object[] a,
Object key)使用二分搜索法來搜索指定數組,以獲得指定對象。在進行此調用之前,必須根據元素的自然順序對數組進行升序排序(通過 sort(Object[]) 方法)。如果沒有對數組進行排序,則結果是不確定的。(如果數組包含不可相互比較的元素(例如,字元串和整數),則無法 根據其元素的自然順序對數組進行排序,因此結果是不確定的。)如果數組包含多個等於指定對象的元素,則無法保證找到的是哪一個。

參數:
a - 要搜索的數組
key - 要搜索的值
返回:
如果它包含在數組中,則返回搜索鍵的索引;否則返回 (-(插入點) - 1)。插入點 被定義為將鍵插入數組的那一點:即第一個大於此鍵的元素索引,如果數組中的所有元素都小於指定的鍵,則為 a.length。注意,這保證了當且僅當此鍵被找到時,返回的值將 >= 0。
拋出:
ClassCastException - 如果搜索的鍵不能與數組的元素進行比較。

7. java【入門】數組元素的查找

importjava.util.Scanner;
publicclassTest1{
publicstaticvoidmain(String[]args){
Scanners=newScanner(System.in);
intm=s.nextInt();
int[]array=newint[m];
for(inti=0;i<m;++i)
array[i]=s.nextInt();
intn=s.nextInt();
intindex=-1;
for(inti=0;i<m;++i)
if(array[i]==n){
index=i+1;
break;
}
System.out.println(index);
}
}

8. java中怎麼取出數組中的數組

1.方法:
public final synchronized void setsize(int newsize);
此方法用來定義向量的大小,若向量對象現有成員個數已經超過了newsize的值,則超過部分的多餘元素會丟失。
2.程序中定義Enumeration類的一個對象Enumeration是java.util中的一個介面類,
在Enumeration中封裝了有關枚舉數據集合的方法。
在Enumeration提供了方法hasMoreElement()來判斷集合中是否還有其他元素和方法nextElement()來判斷集合中是否還有其他元素和方法nextElement()來獲取下一個元素。利用這兩個方法,可以依次獲得集合中的元素。
3.Vector中提供方法:
public final synchronized Enumeration elements();
此方法將向量對象對應到一個枚舉類型。java.util包中的其他類中也都有這類方法,以便於用戶獲取對應的枚舉類型。

9. java:對數組元素進行查找的問題

int[]a={1,3,4,7754,3235,4567,2445,3,3667,453};
intcount=0;
for(inti:a){
//如果有負數,可以在這里加一行:if(i<0)i=-1;
if(i==3){
count++;
}elseif(i>12){//不考慮負數,比12小的數字中不會含有3
Strings=String.valueOf(i);
for(charc:s.toCharArray()){
if(c=='3')count++;
}
}
}
System.out.println("count="+count);

10. java怎麼查找數組的所有方法

不知道你實際是不是指ArrayList這個類,下面列印ArrayList類的所有方法


Method[]methods=ArrayList.class.getMethods();
for(inti=0;i<methods.length;i++){
System.out.print(methods[i].getReturnType());
System.out.print("");
System.out.print(methods[i].getName());
System.out.print("(");
Class<?>[]parameterTypes=methods[i].getParameterTypes();
for(intj=0;j<parameterTypes.length;j++){
System.out.print(parameterTypes[j].getName());
if(j<parameterTypes.length-1){
System.out.print(",");
}
}
System.out.println(")");
}

[Ljava.lang.Object; [L標示數組

閱讀全文

與數組中查找數組的java相關的資料

熱點內容
愛上北斗星男友在哪個app上看 瀏覽:413
主力散戶派發源碼 瀏覽:663
linux如何修復伺服器時間 瀏覽:55
榮縣優途網約車app叫什麼 瀏覽:472
百姓網app截圖是什麼意思 瀏覽:222
php如何嵌入html 瀏覽:809
解壓專家怎麼傳輸 瀏覽:743
如何共享伺服器的網路連接 瀏覽:132
程序員簡易表白代碼 瀏覽:166
什麼是無線加密狗 瀏覽:62
國家反詐中心app為什麼會彈出 瀏覽:67
cad壓縮圖列印 瀏覽:102
網頁打開速度與伺服器有什麼關系 瀏覽:863
android開發技術文檔 瀏覽:65
32單片機寫程序 瀏覽:51
三星雙清無命令 瀏覽:839
漢壽小程序源碼 瀏覽:344
易助erp雲伺服器 瀏覽:533
修改本地賬戶管理員文件夾 瀏覽:420
python爬蟲工程師招聘 瀏覽:287