java數組與集合互轉以及利用set去重


int result=0;
        //定義可以去重的set集合
        Set<String> idSet = new HashSet<String>();
        if(users.length>0){
            List    list=Arrays.asList(users);
            for(IUserObject user:users){
                idSet.add(user.getUserId()+user.getUserName()+user.getUserRemoteIP());
            }
              result= idSet.size(); 
        }
        return result;

注意點:

set去重時對於自定義的對象如果其對象屬性有一個相同即為一個對象處理

list利用迭代器進行對象相同處理(按照所有相同屬性進行判斷但必須該定義的對象重寫了toString方法才可使用contains方法)

IUserObject[] result=null;
        if(users.length>0){
             List infolist = new ArrayList();
             List    list=Arrays.asList(users); 
             Iterator it = list.iterator();
             while (it.hasNext()) {

                 IUserObject obj = (IUserObject) it.next();

                    if(!infolist.contains(obj)){
                        infolist.add(obj);
                    }
             }
             result=(IUserObject[]) infolist.toArray(new IUserObject[infolist.size()]);
        }
        return result;

數組轉成集合利用asList方法

String[] array = new String[] {"zhu", "wen", "tao"};
    // String數組轉List集合
    List<String> mlist = Arrays.asList(array);
    // 輸出List集合
    for (int i = 0; i < mlist.size(); i++) {
        System.out.println("mlist-->" + mlist.get(i));
    }

 

將list轉成數組

1、Object[] toArray();

 用法1
        List<String>  stringList2 = new ArrayList<>();
        stringList2.add("A");
        stringList2.add("B");
        stringList2.add("C");
        Object[] objectArray  = stringList2.toArray();

2、<T> T[] toArray(T[] a);

List<String> stringList = new ArrayList<>();
        stringList.add("A");
        stringList.add("B");
        stringList.add("C");
        String[] stringArray = stringList.toArray(new String[stringList.size()]);

  

注意事項:

有些數據類型是不能強轉的所以必須先進行數組類型定義在進行轉換eg:數組不能強轉成String[]數組;除非這個數組初始化的時候就指向了String[]數組

我的微信公眾號大家可以關注下歡迎留言,認識一下交個朋友哈!


免責聲明!

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



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