❶ java實現兩層list循環輸出
for(Object object:list){
object.get();
}
❷ Java中如何讓list每循環3次list中的某個變數就位0
publicstaticvoidmain(String[]args){
List<String>list=newArrayList<>();
list.add("a");
list.add("a");
list.add("a");
list.add("a");
list.add("a");
list.add("a");
list.add("a");
list.add("a");
inta=0;
for(inti=1;i<=list.size();i++){
System.out.println(a);
a++;
if(i%3==0){
a=0;
}
}
}
❸ java 循環一個list
使用容器循環
publicstaticvoidmain(String[]args){
List<String>list=newArrayList();
list.add("123");
list.add("java");
list.add("j2ee");
System.out.println("=========Iterate循環=======");
Iterator<String>iter=list.iterator();
while(iter.hasNext()){
System.out.println(iter.next());
}
}
剛看了修改了問題。感覺寫成一個存儲過程不就快了。
❹ 如何在java中實現List集合的遍歷
java中實現List集合的遍歷有三種方法:
方法一:for-each循環
for(Stringattribute:list){
System.out.println(attribute);
}
方法二:for循環
for(inti=0;i<list.size();i++){
system.out.println(list.get(i));
}
方法三:迭代器迭代
Iteratorit=list.iterator();
while(it.hasNext()){
System.ou.println(it.next);
}
❺ java for循環 怎樣把一個list里相同的數據放到一起
通過題主的描述可以看到,其實就是一個List<Integer>的集合數據處理問題,希望把相同的數據放到一起,是一種歸類操作,也就是說其實總得需要把List<Integer>形式轉化為Map<Integer, List<Integer>>的形式
這種形式map的key也就是當前的這個數字,而這個value就是這個數字對應的所有當前出現此key的集合
List<Integer>list=Arrays.asList(1,1,2,3,4,2,1);
Map<Integer,List<Integer>>map=newHashMap<>();
for(Integernum:list){
//map是否包含此key,若已經包含則添加一個新的數字到對應value集合中
if(map.containsKey(num)){
map.get(num).add(num);
}else{
//map不包含此key,則重新創建一個新集合,並把這個數字添加進集合
//,再把集合放到map中
List<Integer>newList=newArrayList<>();
newList.add(num);
map.put(num,newList);
}
}
System.out.println(map);
輸出結果

結果也是一樣的,題主可以自行選擇
❻ java中對集合對象list的幾種循環訪問總結
List一共有三種遍歷方法,如下:
importjava.util.ArrayList;
importjava.util.Iterator;
importjava.util.List;
publicclassMain{
publicstaticvoidmain(String[]args){
List<Integer>list=newArrayList<>();
for(inti=0;i<10;i++){
list.add(i);
}
//for循環遍歷
for(inti=0,size=list.size();i<size;i++){
System.out.println(list.get(i));
}
//iterator迭代器遍歷
Iterator<Integer>it=list.iterator();
while(it.hasNext()){
System.out.println(it.next());
}
//foreach循環
for(Integeri:list){
System.out.println(i);
}
}
}
數據元素是怎樣在內存中存放的?
主要有2種存儲方式:
1、順序存儲,Random Access(Direct Access):
這種方式,相鄰的數據元素存放於相鄰的內存地址中,整塊內存地址是連續的。可以根據元素的位置直接計算出內存地址,直接進行讀取。讀取一個特定位置元素的平均時間復雜度為O(1)。正常來說,只有基於數組實現的集合,才有這種特性。Java中以ArrayList為代表。
2、鏈式存儲,Sequential Access:
這種方式,每一個數據元素,在內存中都不要求處於相鄰的位置,每個數據元素包含它下一個元素的內存地址。不可以根據元素的位置直接計算出內存地址,只能按順序讀取元素。讀取一個特定位置元素的平均時間復雜度為O(n)。主要以鏈表為代表。Java中以LinkedList為代表。
每個遍歷方法的實現原理是什麼?
1、傳統的for循環遍歷,基於計數器的:
遍歷者自己在集合外部維護一個計數器,然後依次讀取每一個位置的元素,當讀取到最後一個元素後,停止。主要就是需要按元素的位置來讀取元素。
2、迭代器遍歷,Iterator:
每一個具體實現的數據集合,一般都需要提供相應的Iterator。相比於傳統for循環,Iterator取締了顯式的遍歷計數器。所以基於順序存儲集合的Iterator可以直接按位置訪問數據。而基於鏈式存儲集合的Iterator,正常的實現,都是需要保存當前遍歷的位置。然後根據當前位置來向前或者向後移動指針。
3、foreach循環遍歷:
根據反編譯的位元組碼可以發現,foreach內部也是採用了Iterator的方式實現,只不過Java編譯器幫我們生成了這些代碼。
各遍歷方式的適用於什麼場合?
1、傳統的for循環遍歷,基於計數器的:
順序存儲:讀取性能比較高。適用於遍歷順序存儲集合。
鏈式存儲:時間復雜度太大,不適用於遍歷鏈式存儲的集合。
2、迭代器遍歷,Iterator:
順序存儲:如果不是太在意時間,推薦選擇此方式,畢竟代碼更加簡潔,也防止了Off-By-One的問題。
鏈式存儲:意義就重大了,平均時間復雜度降為O(n),還是挺誘人的,所以推薦此種遍歷方式。
3、foreach循環遍歷:
foreach只是讓代碼更加簡潔了,但是他有一些缺點,就是遍歷過程中不能操作數據集合(刪除等),所以有些場合不使用。而且它本身就是基於Iterator實現的,但是由於類型轉換的問題,所以會比直接使用Iterator慢一點,但是還好,時間復雜度都是一樣的。所以怎麼選擇,參考上面兩種方式,做一個折中的選擇。
❼ 關於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 ; i<end; i++){
......................
}
return XXX;
-----------------------我是華麗的分割線---------------
思路和簡單的實現方式就上面這個樣子了,一些錯誤參數控制什麼的,我就不仔細考慮了。