我有一個ArrayList<String>
,我想從中刪除重複的字符串。 我怎樣才能作到這一點? java
import java.util.*; class RemoveDupFrmString { public static void main(String[] args) { String s="appsc"; Set<Character> unique = new LinkedHashSet<Character> (); for(char c : s.toCharArray()) { System.out.println(unique.add(c)); } for(char dis:unique){ System.out.println(dis); } } }
LinkedHashSet能夠解決問題。 app
String[] arr2 = {"5","1","2","3","3","4","1","2"}; Set<String> set = new LinkedHashSet<String>(Arrays.asList(arr2)); for(String s1 : set) System.out.println(s1); System.out.println( "------------------------" ); String[] arr3 = set.toArray(new String[0]); for(int i = 0; i < arr3.length; i++) System.out.println(arr3[i].toString());
//輸出:五、一、二、三、4 spa
public Set<Object> findDuplicates(List<Object> list) { Set<Object> items = new HashSet<Object>(); Set<Object> duplicates = new HashSet<Object>(); for (Object item : list) { if (items.contains(item)) { duplicates.add(item); } else { items.add(item); } } return duplicates; }
這樣能夠解決問題: code
private List<SomeClass> clearListFromDuplicateFirstName(List<SomeClass> list1) { Map<String, SomeClass> cleanMap = new LinkedHashMap<String, SomeClass>(); for (int i = 0; i < list1.size(); i++) { cleanMap.put(list1.get(i).getFirstName(), list1.get(i)); } List<SomeClass> list = new ArrayList<SomeClass>(cleanMap.values()); return list; }
若是要保留您的Order,那麼最好使用LinkedHashSet 。 由於若是您但願經過迭代將該列表傳遞給插入查詢,則將保留順序。 字符串
嘗試這個 get
LinkedHashSet link=new LinkedHashSet(); List listOfValues=new ArrayList(); listOfValues.add(link);
當您要返回列表而不是集合時,此轉換將很是有幫助。 it