本文目录一览:
- 1、java 循环list集合 有几种方法
- 2、关于java list循环的问题
- 3、java 高级循环 出 list里内容
- 4、java 循环一个list
- 5、java for循环 怎样把一个list里相同的数据放到一起
- 6、java关于集合List循环?
java 循环list集合 有几种方法
public static void main(String[] args) {
ListInteger list = new ArrayList();
list.add(0);
list.add(1);
list.add(2);
list.add(3);
list.add(4);
list.add(5);
//for
for(int i=0; ilist.size(); i++){
System.out.println(list.get(i));
}
//for each
for(Integer i : list){
System.out.println(i);
}
//iterator
IteratorInteger it = list.iterator();
while(it.hasNext()){
System.out.println(it.next());
}
//array
Integer[] array = new Integer[list.toArray().length];
list.toArray(array);
// for(int i=0; iarray.length; i++){
// System.out.println(array[i]);
// }
for(Integer i : array){
System.out.println(i);
}
}
关于java list循环的问题
我猜你的想法应该是类似分页的效果,可以根据请求的页数获得数据。
比如:3万行数据,分成6页(当然可以根据每页的数据设置页数),每页5000条数据。
需要第1页的数据,则返回前面的5000条,即 (第1页-1) * 5000 到 第1页 * 5000,这个区间内的数据。依次类推。如果想更加灵活,则动态的设置每页的数据条数。
请求数据的时候,只需要传入相应的页数就好了,即想要那个区间段的数据。
一次一次的请求就可以获得数据了。而且也避免了一次数据过大,占用内存过多。
-----------------------我是华丽的分割线---------------
int all_len = //总数
int page_count = //分页数
int every_page_len = //每页的数据条数
public Map readExcel(int page_index) {
...................
int start = (page_index-1)*every_page_len;
int end = page_index*every_page_len;
for(int i=start ; iend; i++){
......................
}
return XXX;
-----------------------我是华丽的分割线---------------
思路和简单的实现方式就上面这个样子了,一些错误参数控制什么的,我就不仔细考虑了。
java 高级循环 出 list里内容
要循环出 list里内容,就把类封装,通过for循环一层一层往外面拨。
while(rs.next()){
info.setList_id(rs.getString(1));
info.setList_dm(rs.getString(2));
info.setList_sc(rs.getString(3));
list.add(num++, info);
}
StockInfo info = new StockInfo();
怎么装进去就怎么取出来啊。
java 循环一个list
使用容器循环
public static void main(String[] args) {
ListString list = new ArrayList();
list.add("123");
list.add("java");
list.add("j2ee");
System.out.println("=========Iterate循环=======");
IteratorString iter = list.iterator();
while(iter.hasNext()){
System.out.println(iter.next());
}
}
刚看了修改了问题。感觉写成一个存储过程不就快了。
java for循环 怎样把一个list里相同的数据放到一起
通过题主的描述可以看到,其实就是一个ListInteger的集合数据处理问题,希望把相同的数据放到一起,是一种归类操作,也就是说其实总得需要把ListInteger形式转化为MapInteger, ListInteger的形式
这种形式map的key也就是当前的这个数字,而这个value就是这个数字对应的所有当前出现此key的集合
ListInteger list = Arrays.asList(1, 1, 2, 3, 4, 2, 1);
MapInteger, ListInteger map = new HashMap();
for (Integer num : list){
// map是否包含此key,若已经包含则添加一个新的数字到对应value集合中
if (map.containsKey(num)){
map.get(num).add(num);
}else{
// map不包含此key,则重新创建一个新集合,并把这个数字添加进集合
// ,再把集合放到map中
ListInteger newList = new ArrayList();
newList.add(num);
map.put(num, newList);
}
}
System.out.println(map);
输出结果
这只是简单把map打印出来,当然有了这个map,想怎么样输出都是可以的了
额外的,上面的那种写法虽然也还算简单明了,但是对于如今Java8中的流(Stream)操作而言,还是显得太复杂了,而且采用for这种外部循环告诉机器你要怎样循环怎么取值,怎样操作实在繁琐,太过命令式编程,若采用Stream的方式来写上述过程就非常简答了,只需要告诉机器你要做什么就可以了,不用去管怎么循环,只管要什么操作(把JDK升到8即可尝试以下代码)
// 第二种方式Java8 Stream
MapInteger, ListInteger map1 = list.stream().collect(Collectors.groupingBy(Function.identity(), Collectors.toList()));
System.out.println(map1);
一行代码就搞定了,这里采用的是Collectors.groupingBy方法进行归类数据,里面两个参数代表分别代表:
如何把流中的数据进行归类,表示归类的依据,由于是数字本身,所以第一个参数传入Function.identity,就是代表本身的意思,数字相同就归类到一起
第二个参数是代表,把归类到一起的数字怎么合到一起,Collectors.toList代表就是把数字归类成集合,所以返回的就是MapInteger, ListInteger,这正好是我们要的结果
由于Collectors.groupingBy默认是按照Collectors.toList的方式进行归类的,所以上面的代码还可以再减少一个参数,写为
// 第二种方式Java8 Stream
MapInteger, ListInteger map1 = list.stream().collect(Collectors.groupingBy(Function.identity()));
System.out.println(map1);
结果为
结果也是一样的,题主可以自行选择
java关于集合List循环?
package com.xxt.lyh;
import java.util.ArrayList;
import java.util.List;
public class Test {
public static void main(String[] args) {
ListString list = new ArrayListString();
list.add("张三");
list.add("李四");
list.add("王五");
list.add("赵六");
// for循环。
for (int i = 0; i list.size(); i++) {
String name = list.get(i);
System.out.println(name);
}
// 增强型for循环,java5开始引入。
System.out.println();
for (String name : list) {
System.out.println(name);
}
}
}