『壹』 java里的List<T>介面里的subList方法,API沒看懂
1,並不是發明出來的,原文就是view,就是視圖的意思。
視圖的概念借用了資料庫的view概念。sablist返回的list和原來的list,後面的數據是同一份,所以對任何item本身的修改,會反映到另一個list。
2,因為sublist知道使用了哪個fullList,當然能夠正確處理clear;反過來卻不然,所以,對fullList的clear,會造成未定義的結果。
3,如果是arrayList,是你說的那樣,remove的話,會把後面的數據向前串一個,然後等著回收唄;如果是link list,就是鏈表結構了。
『貳』 java 中 list集合中有幾十萬條數據,每100條為一組取出來如何實現,求代碼!!!
/**
* list中有150條數據,每次只拿20條數據,直到拿完所有數據
*/
List<String> urlList = new ArrayList<String>();
for (int i = 0; i < 150; i++) {
urlList.add(i+"");
}
for(int i = 0;i < urlList.size();i+=20){
List<String> param = new ArrayList<String>();//用戶存放每次獲取到的二十條數據
if( i + 20 < urlList.size()){
for (int j = i; j < i + 20; j++) {
param.add(urlList.get(j));
}
}else {
for (int j = i; j < urlList.size() ; j++) {
param.add(urlList.get(j));
}
}
System.out.println("每次獲取到的20條數據:" + param);
}
『叄』 java vector中clear()與removeAllElements(),arraylist的clear()與new arraylist()有何區別
Vector
clear():從此Vector中刪除所有元素,此調用返回後,Vector將為空。
removeAllElements():從該向量中刪除所有組件,並將其大小設置為零(該方法的功能與clear()方法相同(它是List介面的一部分))。
Arraylist
clear():從列表中刪除所有元素,返回列表將為空(之前引用的地址都被清空)。
new arraylist():初始化List,得到一個新的空List(之前引用的地址不會被清空)。
『肆』 JAVA中的List的使用
List<E>([]內的內容可省略),與數組類似:
實例化:List[<數據類型>] list = new ArrayList[<數據類型>]();
獲得集合內元素個數:list.size();
添加元素:
默認添加:list.add(e);
指定下標添加(添加後下標後的元素向後挪一位):list.add(index,e);
刪除元素:
返回是否刪除:list.remove(e);
直接刪除指定下標的元素(只刪除找到的第一個相符合的元素):list.remove(index);
替換元素(替換掉指定下標的元素):list.set(index,e);
取出元素:list.get(index);
清空集合:list.clear();
判斷集合中是否存在某個元素(存在返回true,不存在返回false):list.contains(e);
對比兩個集合中的所有元素:
兩個對象一定相等:list.equals(list2);
兩個對象不一定相等:list.hashCode() == list2.hashCode();
(兩個相等對象的equals方法一定為true, 但兩個hashcode相等的對象不一定是相等的對象。)
獲得元素下標:
元素存在則返回找到的第一個元素的下標,不存在則返回-1:list.indexOf(e);
元素存在則返回找到的最後一個元素的下標,不存在則返回-1:list.lastIndexOf(e);
判斷集合是否為空(空則返回true,非空則返回false):list.isEmpty();
返回Iterator集合對象:list.iterator();
將集合轉換為字元串:list.toString();
截取集合(從fromIndex開始在toIndex前結束,[fromIndex,toIndex)):list.subList(fromIndex,toIndex);
將集合轉換為數組:
默認類型:list.toArray();
指定類型(objects為指定類型的數組對象,並將轉換好的數組賦值給objects數組):list.toArray(objects);
以上為List常用的方法。
『伍』 java list<object>如何去重
List<String>list=newArrayList<>();
/*list.add("abc");
list.add("abc");
list.add("def");
list.add("bcd");*/
Set<String>set=newLinkedHashSet<>();//這種方式保證去重後的元素相對位置不變
//Set<String>set=newHashSet<>();//這種方式去重後元素的位置很有可能變化了
set.addAll(list);
list.clear();
list.addAll(set);
for(Strings:list){
System.out.println(s);
}
整個思路就是利用set中的元素是不重復的,來達到去重的目的