Java-數組集合常見面試題


1.去重

list去重:

方法一:兩個for 循環:外層循環控制比較輪數,輪數為list長度減去1;內層循環控制每輪比較次數,每輪比較次數為list長度減去當前輪數

for(int i=0;i<list.size()-1;i++){

    for(int j=list.size-1;j>i;j--){ 

if(List.get(j).equals(List.get(i))){

List.remove(j);

}}}

方法二;

jdk1.8后提供List.stream().distinct();

方法三:

使用set對元素進行去重

set元素是無序的,元素不可重復

HashSet set=new HashSet(List);//利用List中的元素創建HashSet集合,此時已經進行了去重操作

List.clear();//清空原來的list

List.add(set);//把去重后的元素重新加入List中

 

數組去重:

方法一

用List集合實現

int[] str={5,6,6,8,8,7,4};

List<Integer> list=new ArrayList<Integer>();

for(int i=0;i<str.length;i++){
if(!list.contains(str[i]));

list.add(str[i]);

}

}

System.out.println(list);

方法二:

用HashSet:

Set set=new HashSet();

for(int i=0;i<a.length();i++){

set.add(a[i]);

}

2.取交集

list取交集

listA.retainAll(listB)

數組取交集

String[] result_insect=intersect(arr1,arr2); 

3.兩個數組取並集

listA.removeAll(listB);//先取兩者的差集,也就是listA去掉公共部分

listA.addAll(listB);然后把ListA中剩余部分追加到ListB中

String[] result_union=union(arr1,arr2);

並集也可以用hashset,把兩個數組遍歷進去

 

交集:先把數組1放到linkList里面,然后遍歷數組2,如果linkList里面包含數組2中的元素,則將此元素加入進一個新的數組中。

 

總結:

1.去重用Set

2.linklist插入比ArrayList要快

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM