1樓:七月逆流成河
從你得到的結果看,你確實是獲得到了bean包下的category類的category物件。但是為什麼列印出來的是物件的字串表現形式?這是因為所有類繼承了object類,object類裡面有個string tostring()方法。
當使用system.out.println()方法輸出一個物件(相當於jsp,servlet中用的out.
println()方法),系統自動呼叫該物件的tostring()方法返回「執行時類名@十六進位制hashcode值」格式的字串。如果你想獲得真正的類包含的資訊,就自己重寫tostring()方法。
比如:class a}
2樓:匿名使用者
預設的tostring()方法的字串格式是:
類的包路徑 @ hashcode的八進位制表示。
bean.category是類名。
1da1a93是hashcode的八進位制表示方法。
你想列印正確就要過載tostring方法,讓這個方法列印出這個物件的資訊就可以了。
3樓:匿名使用者
it.next() 返回的是object 必須轉成你要的型別假設你list裡面存的是student那麼 你就得轉為student 才會有相應的屬性 不轉它列印出來的則是地址 既你儲存的物件在記憶體中的地址
4樓:匿名使用者
it.next() 把這句強制轉換成 實體類物件
category c=(category)it.next();
之後輸出c.你的屬性欄位就行了
5樓:匿名使用者
for(int i=0;i 6樓:匿名使用者 tostring(); j**a怎麼迴圈遍歷arraylist 7樓:匿名使用者 除了用for迴圈也可以用迭代器 arraylistal=new arraylist(); for(int i=0;i<10;i++)iteratorit=al.iterator(); while(it.hasnext()) 8樓: for(int i = 0; i 9樓:澤澤 for迴圈和while迴圈都行 10樓:匿名使用者 public class test }} 這樣可以不? 關於j**a中list的遍歷輸出問題 11樓:匿名使用者 這是因為索引問題,當你直接由後向前輸出時,此時list索引是從0開始的,而向前是-1,當然不會有值了,如果非要用這種方法的話,應該先向後遍歷,然後由後向前輸出。 12樓:匿名使用者 listiterator(int index) 返回列表中元素的列表迭代器(按適當順序),從列表的指定位置開始上面那句改為 listiteratoriter = all.listiterator(all.size()); 就行了 13樓:匿名使用者 一定要先從前向後才可以從後向前,要不然是不行的。public static void main(string args) while (iter.hasprevious())} j**a中遍歷arraylist的過程中刪除元素操作會發生併發修改異常? 14樓:匿名使用者 首先搞清楚不是x=n-1不報錯。是因為他避開了錯誤,實際當你用倒數第2個來刪除的時候,他就已經跳出迴圈,不會判斷最後以為,這是為什麼呢? 我們先看看加強for迴圈是怎麼實現的。都知道是通過迭代實現,那麼將for寫成迭代器來看。 iteratoritr = al.iterator(); while(itr.hasnext()) }以上就是加強for迴圈的真正樣子。再來透析源**。 al.iterator():返回一個迭代器沒什麼好說的; itr.hasnext():通過判斷 cursor(遊標) ! = size(長度)來決定是否結束迴圈,cursor(遊標) 初始是0 每次經過 itr.next() +1;當cursor==size時 會跳出迴圈,這也是為什麼倒數第2個不會出錯的主要原因; itr.next(): 看源**可以發現每次在next()呼叫後,都會先呼叫checkforcomodification()這個方法; checkforcomodification(): 主要作用是判斷itr迭代器資料是否和list一致, 有兩個引數, 第一個 modcount 集合結構變動次數,如:一開始你add呼叫了7次,那麼這個數就是7, 第二個 expectedmodcount 在呼叫iterator()方法時,初始化值等於modcount , 這個方法判斷當 modcount != expectedmodcount 時 丟擲異常concurrentmodificationexception,如果你呼叫迭代器的remove方法,expectedmodcount 會重新賦值,但是你呼叫的是list的remove方法,那麼modcount 就會+1 而expectedmodcount 不變,這就會造成 modcount != expectedmodcount; 最後,看看為什麼倒數第2個不會拋異常: 當他遍歷到「n-1」時,cursor=6,然後呼叫remover(o)方法,size=6,這個時候呼叫了itr.hasnext()判斷 cursor是否等於size,前面說過,當cursor==size時,跳出迴圈,那麼就不會進入next(),也就不會進入checkforcomodification()方法,所以不會丟擲異常,說白了,也就是迴圈次數少了一次。 結合著原始碼看,應該會比較清晰。 15樓:白菜一顆 arraylist 迴圈刪除的時候需要從後往前刪,因為刪了之後會把後面的所有元素向前移動,而最後空出來的那個會成為 null ,所以當你從前往後刪的時候前面刪除了後面補上,迴圈到後面的時候就有一部分成 null 了就報錯了
j**a中有關arraylist的iterator遍歷問題 16樓:gta小雞 讀arraylist的add方法的說明:public void add(int index, e element) 將element插入到第index個元素的前面,插入完成後element成為第index個元素。 d的名字叫做格式說明符.格式說明符由兩部分組成,前面是 號 後面是一個小寫字母 不同的格式說明符代表不同的輸出格式,這裡,前面這個 d就是將對應的變數c以整數形式輸出.後面這個 d就是將對應的變數d以整數形式輸出.f是浮點數格式,也就是將變數以小數點的形式輸出,比如c 1 printf f c 那螢... 這麼給你說吧。string arr new string hello word 你這個是對的,但是你想倒序輸出的時候就有問題了。你這個沒必要用字串陣列,字串也有索引的。string arr hello word for int i i 0 i 這個是在vs2008裡的語法,你用的response... 天賦不重複了 說下飾品 現階段國服飾品用的大概有六個 薄片 灰蛇 恥辱 龍脊 背叛 狂暴 lz有了恥辱 其他五個從入手難度來看 龍脊其實是最容易的 glr現在出龍脊的概率非常大 組10個人親友團去拿一個並不難 其次就是狂暴者召喚 zam現在也是碾壓 沒事去打下 對於2分內的boss戰 狂暴的效果在背...C語言輸出問題,C語言的輸出問題?
C 序輸出問題,C語言反序輸出問題
DZ輸出問題