本文目錄一覽:
- 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);
}
}
}
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-hant/n/302892.html