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




请各位大神看一下

package demo;
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集合问题的主要内容,如果未能解决你的问题,请参考以下文章

java里set list 为啥能遍历集合

Freemarker如何遍历List<String>集合?

Java遍历List集合的三种方法

Java中List集合的遍历

java 遍历list 绑定到table中

Java中List集合遍历的三种方式