java篩選list
1. java對List去重並排序,如何快速地去掉兩個
Java8開始,對數值,集合等提供了Stream流操作,可以方便的對集合進行操作.
比如 篩選,過濾,去重, 映射, 排序,規約,收集 等操作
簡單的參考代碼如下
importjava.util.Arrays;
importjava.util.List;
importjava.util.stream.Collectors;
//使用Java8的Stream特性和Java8的Lambda語句
publicclassDemo{
publicstaticvoidmain(String[]args){
//需求:集合去重,排序,得到一個新集合裡面的元素是之前元素的平方
List<Integer>list=Arrays.asList(5,2,2,1,3,4);
List<Integer>listResult= list
.stream()//得到流
.distinct()//去重5,2,1,3,4
.sorted()//自然排序,也可以自定義排序規則1,2,3,4,5
.map(x->x*x)//每個元素求平方1,4,9,16,25
.collect(Collectors.toList());//收集並返回
System.out.println(listResult);//1,4,9,16,25
}
}
2. 在Java中,如何檢測一個數組中是否包含某一個數據
在Java中,檢測一個數組是否包含某一個數據,通常有四種方法:
(1)for循環
(2)轉換為List,調用Arrays.asList(arr).contains方法
(3)使用Set
(4)使用Arrays.binarySearch()方法
下面為上述四種方法的具體代碼實現:
1、使用for循環
publicstaticbooleanuseLoop(String[]arr,StringtargetValue){
for(Strings:arr){
if(s.equals(targetValue))
returntrue;
}
returnfalse;
}
2、轉換為List,調用Arrays.asList(arr).contains方法
publicstaticbooleanuseList(String[]arr,StringtargetValue){
returnArrays.asList(arr).contains(targetValue);
}
3、使用Set
publicstaticbooleanuseSet(String[]arr,StringtargetValue){
Set<String>老輪搜set=newHashSet<String>(Arrays.asList(arr));
returnset.contains(targetValue);
}
4、使侍歷用Arrays.binarySearch()方法
特別說明:binarySearch()二分查找僅適用於有序數組,如果不是有序數組,則報異常
(String[]arr,StringtargetValue){
inta=Arrays.binarySearch(arr,targetValue);
if(a>0){
returntrue;
}else{
returnfalse;
}}
(2)java篩選list擴展閱讀:
Java種List列表的contains方法:
該方法是通過遍歷集合中的每一個元桐猛素並用equals方法比較是否存在指定的元素。
publicbooleancontains(Objecto){
Iterator<E>it=iterator();
if(o==null){
while(it.hasNext())
if(it.next()==null)
returntrue;
}else{
while(it.hasNext())
if(o.equals(it.next()))
returntrue;
}
returnfalse;
}