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[]數組
我的微信公眾號大家可以關注下歡迎留言,認識一下交個朋友哈!