優雅にArayListで繰り返される要素を探してください。
3509 ワード
わざと優雅さを強調しましたので、二重循環などは来ないでください。先に感謝します。
群の中で分かち合うコードを見て、すべての自分で試みて、技術の蓄積だと思って、4つの学期末試験がまだありますが、しかしやはり技術は私の誘惑力に対してもっと大きくて、更に私の心の中に百回を黙読させてください。
方法1
コード:
重複しています:aaa重複しています:bb重複しています:ccc
方法2
コードは以下の通りです
the element:string 1 is repeat the element:string 1 is repeat the element:string 1 is repeat the element:string 2 is repeat
方法3
java 8を使っていませんので、ideaはstreamをサポートしていません。この方法は検証されていません。しばらく保存します。
コードは以下の通りです
リストで重複する要素:[a,d]
群の中で分かち合うコードを見て、すべての自分で試みて、技術の蓄積だと思って、4つの学期末試験がまだありますが、しかしやはり技術は私の誘惑力に対してもっと大きくて、更に私の心の中に百回を黙読させてください。
方法1
コード:
import java.util.List;
import java.util.ArrayList;
/**
* Created by cxh on 17/1/9.
*/
public class Main {
public static void main(String[] args){
List list = new ArrayList();
list.add("aaa");
list.add("bbb");
list.add("ccc");
list.add("ddd");
list.add("aaa");
list.add("aaaa");
list.add("eee");
list.add("bbb");
list.add("ccc");
StringBuilder builder = new StringBuilder();
for(String str : list) {
// -1。
if(builder.indexOf(","+str+",") > -1) {
System.out.println(" :"+str);
} else {
builder.append(",").append(str).append(",");
}
}
}
}
実行結果:重複しています:aaa重複しています:bb重複しています:ccc
方法2
コードは以下の通りです
package netmethod;
import java.util.List;
import java.util.ArrayList;
import java.util.HashMap;
/**
* Created by cxh on 17/1/9.
*/
public class Main {
public static void main(String[] args){
List list=new ArrayList();
list.add("string1");
list.add("string2");
list.add("string3");
list.add("string1");
list.add("string1");
list.add("string1");
list.add("string2");
//list.add("string3");
HashMap hashMap=new HashMap();
for(String string:list){
if(hashMap.get(string)!=null){ //hashMap list
Integer integer=hashMap.get(string);
hashMap.put(string,integer+1);
System.out.println("the element:"+string+" is repeat");
}
else{
hashMap.put(string,1);
}
}
}
}
実行結果:the element:string 1 is repeat the element:string 1 is repeat the element:string 1 is repeat the element:string 2 is repeat
方法3
java 8を使っていませんので、ideaはstreamをサポートしていません。この方法は検証されていません。しばらく保存します。
コードは以下の通りです
import java.util.Arrays;
import java.util.List;
import java.util.stream.Collectors;
public class Main {
public static List getDuplicateElements(List list) {
return list.stream() // list Stream
.collect(Collectors.toMap(e -> e, e -> 1, (a, b) -> a + b)) // Map, ,
.entrySet().stream() // entry Stream
.filter(entry -> entry.getValue() > 1) // 1 entry
.map(entry -> entry.getKey()) // entry ( ) Stream
.collect(Collectors.toList()); // List
}
public static void main(String[] args) throws Exception {
List list = Arrays.asList("a", "b", "c", "d", "a", "a", "d", "d");
List duplicateElements = getDuplicateElements(list);
System.out.println("list :" + duplicateElements);
}
}
実行結果:リストで重複する要素:[a,d]