2013-02-14 52 views
0

有没有一种方法可以检索到值4500? 我知道我可以使用collection.max或collection.min的最高和最低,但我如何获得之间的价值?感谢如何在arraylist中查找值

int value = 4000; 

for(int i = 0; i < Array.size();i++){ 
     Array.get(i); 

    if (value < Array.get(i) && value <= Array.get(i)) 
    { 
     value=????; 


    } 

Array.add(1000); 
Array.add(2000); 
Array.add(3000); 
Array.add(4500);  
Array.add(5000); 
Array.add(8000); 
+0

的编程语言是这样吗? JAVA? – 2013-02-14 18:03:40

+0

是的Java,谢谢 – newbieprogrammer 2013-02-14 18:08:49

+0

下次发布问题时,请务必尽可能详细地告诉我们,并明确指出它是哪种编程语言并适当添加标签。这将确保正确的人看到你的问题和答案.. :) – 2013-02-14 18:10:36

回答

1

如果数据被排序做一个BinarySearch否则做LinearSearch

例如

Collections.binarySearch(array,value); 

线性搜索:

int size = array.size(); 
for(int i=0;i<size;i++){ 
    if(array.get(i) >= value){  
     if (i + 1 < size){ 
     return array.get(i+1); 
     } 
     else { 
     // No element found      
     } 
}  
+0

我想搜索的数字大于4000,小于或等于列表中的数字 – newbieprogrammer 2013-02-14 18:12:11

+0

查看更新代码 – iTech 2013-02-14 18:15:32

+0

ok.let我的工作这一点 – newbieprogrammer 2013-02-14 18:17:41