已采納回答 / Tuboss
原因出在你的第二行代碼用于用的addAll(1, Arrays.asList(courses2));的方法,你這行代碼的意思是講課程數組courses2中的兩門課程從“1”這個位置開始放,也就是說:你添加的高等數學,和大學英語就位于課程列表的1和2位置上;此時你前面添加的3和4位置的上的離散數學和匯編語言就被擠在5和6的位置,然后你調用你截圖中的3、4行代碼。自然獲取就是離散數學和匯編語言;;在分析你輸出結果的第三行內容。按照慣性思維會認為輸出原來1、2位置上被擠下來的兩門課也就是(C語言和離散數學);但...
2015-10-05
已采納回答 / 異新世
String s角標越界, for (int i=1;i<=s.length();i++ ?), s.length()是字符個數,角標是從0開始,所以s的最大角標是s.length()-1, 所以s.charAt(i),取到s.charAt(s.length())時越界,拋出java.lang.StringIndexOutOfBoundsException,即String索引越界異常
2015-09-29
已采納回答 / 無動于衷
接口是不能實例化的,但是接口的實現類可以,實現類的實例可以用接口的引用接受,像是這樣:List<Student> list = new ArrayList<Student>();也可以這樣定義屬性:private List<Student> list;只要list后來指向一個實現類的實例就可以了:list = new ArrayList<Student>();
2015-09-24
已采納回答 / 無動于衷
那要看調用equals()方法的對象所對應的類 里的equals方法是怎么寫的了。舉個例子。一般的類沒有重寫Object類的equals()方法,比如你隨便定義一個類Student,那么當我Student t = new Student();t.equals(??)這里就會調用父類的equals()方法。Object類里的equals方法比較的是地址,所以我寫的這個類比較的也是地址。而有些類為了一些使用上的方便合理,于是便重寫了equals()方法。比如String類,當我們使用字符串時,當他們內容相同時...
2015-09-23
已采納回答 / 無動于衷
map以簡直對的形式存放數據。<K,V>這里的Key程序里定義的是Student的id,Value存放的是這個Student對象。你理解出錯的地方時:get(ID)這個方法,這里參數是ID而不是得到的是ID!,get(K)是map中的一個方法,會得到K對應的V值,也就是得到這個ID對應的Student對象。輸入ID,得到這個Student!好好想想把,弄明白參數和返回類型!
2015-09-22
已采納回答 / 無動于衷
首先你要了解Override的范圍!Overide只在當前類或子類中生效!第一個例子里,你重寫的是Student類的compareTo()方法,那么當你用一個Student對象去調用這個方法時,執行的就是你Student里重寫的方法,這個你應該是明白的。那么看方法中間的代碼,return this.getId().compareTo(o.getId);這里的this.getId()是String類型的,而String類里的compareTo()方法并沒有重寫!它調用的是它自身的compareTo()方法(...
2015-09-21