java遍历list集合问题
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了java遍历list集合问题相关的知识,希望对你有一定的参考价值。
List<Integer> list =dao.xxxxxx;//从数据库中获取的一个list集合
Random r = new Random();
Integer a =r.nextInt(50);//随机生成一个数
for(Integer i:list)
if(i==a)
//要求如果生成的数和list集合中的任意一个相等,则a需要减去1后输出
/*例如list中有1, 3, 5,6, 7, 9, 10 ,如果a=2,直接输出,
* 如果a=9,9存在于集合中,输出a-1,也就是8
* 如果a=7,7存在,a-1=6还是存在,a-1=5还是存在,a-1=4不存在,输出4
*
*/
请各位大神看一下
import java.util.*;
public class Listl
public static void main(String args[])
List<Integer> list = new ArrayList<Integer>(); // 此处换成你自己的List即可
list.add(1);
list.add(2);
list.add(5);
list.add(6);
list.add(7);
list.add(8);
list.add(9);
Random r = new Random();
Integer a =r.nextInt(13);
Listl ll = new Listl();
while(ll.isExist(a,list))
a=a-1;
continue;
System.out.println(a);
System.out.println(list);
public boolean isExist(Integer i,List<Integer> list)
for(Integer j:list)
if(i==j) return true;
return false;
欢迎追问 参考技术A import
java.util.ArrayList;
import
java.util.List;
import
java.util.Random;
public
class ListTest
publicstaticvoid main(String[] args)
List<Integer> list =
new ArrayList<Integer>();
list.add(1);
list.add(31);
list.add(5);
list.add(6);
list.add(7);
list.add(9);
list.add(10);
Integer a =
new Random().nextInt(50);
String str = list.toString();
a = 7;
//force a = 2,7,9 to test
while(true)
if(str.indexOf(a.toString()) == -1)
System.
out.println(a.toString());
break;
else
a = a -1;
参考技术B 提供思路 需要的话提供代码
List遍历就就俩方法
效率最高的是迭代器吧 然后是临时变量把list当数组看
实现的方法没什么问题 优化的话就作一个二分查找吧
List既然是从数据库里面取出来的 可以在做查询的时候使用排序
然后在找list元素的时候 用二分查找 效率应该会高一点 参考技术C 直接用一个while循环搞定,下面是代码,仅供参考
package com.service.test;
import java.util.ArrayList;
import java.util.List;
import java.util.Random;
public class TestClient
public static void main(String[] args) throws Exception
Integer[] intes = 1, 3, 4, 6, 8, 10, 7, 9, 5 ;
List<Integer> list = new ArrayList<Integer>();
for (Integer a : intes)
list.add(a);
checkOutPut(list);
private static void checkOutPut(List<Integer> list)
Random r = new Random();
Integer temp = r.nextInt(10);
if (list != null)
while (list.contains(temp))
temp = temp - 1;
continue;
System.out.println(temp);
参考技术D 下面是我写的测试例子,随机数我也是用的测试数字
看看是否符合你的要求
List<Integer> list = new ArrayList<Integer>();
list.add(3);
list.add(1);
list.add(5);
list.add(6);
list.add(7);
list.add(9);
list.add(10);
Random r = new Random();
Integer a = 7;// 随机生成一个数
Object [] obj=list.toArray();
Arrays.sort(obj);
for (int i = obj.length-1; i >=0; i--)
if(obj[i]==a)
a--;
System.out.println(a);
java中怎么遍历list集合
常用的List集合, 可以使用下面几种方式进行遍历
参考代码
import java.util.ArrayList;import java.util.Iterator;
public class Test
public static void main(String[] args)
ArrayList<Integer> list = new ArrayList<Integer>();
list.add(5);
list.add(8);
list.add(9);
//方案一 推荐 .简洁
for (Integer e : list)
System.out.print(e + ",");
//方案二
for (int i = 0; i < list.size(); i++)
System.out.println(list.get(i));
//方案三
Iterator<Integer> it = list.iterator();
while (it.hasNext())
System.out.println(it.next());
参考技术A List<String> list = new ArrayList<String>();
list.add("aaa");
list.add("bbb");
list.add("ccc");
方法一:
超级for循环遍历
for(String attribute : list)
System.out.println(attribute);
方法二:
对于ArrayList来说速度比较快, 用for循环, 以size为条件遍历:
for(int i = 0 ; i < list.size() ; i++)
system.out.println(list.get(i));
方法三:
集合类的通用遍历方式, 从很早的版本就有, 用迭代器迭代
Iterator it = list.iterator();
while(it.hasNext())
System.ou.println(it.next);
参考技术B 经常做这样的东西自己去建一个bean里面是你ResultSet赛选出来的值读取出来后全部赋值过去过去后声明出那个bean的一个对象赋值给list把list放在request就可以在
以上是关于java遍历list集合问题的主要内容,如果未能解决你的问题,请参考以下文章