A. java里有沒有專門判斷List里有重復的數據
既然用list了,那麼抄就不排除襲會重復,而且list可以是對象,也並不好確認唯一性,可以用map來進行存儲確認唯一性。如果一定要把list判斷出來的話,可以參考下面的小例子
public static void main(String[] args)
{
List<String> list = new ArrayList<String>();
list.add("aa");
list.add("bb");
list.add("cc");
list.add("dd");
list.add("bb");
list.add("ee");
list.add("dd");
list.add("ff");
String temp = "";
for (int i = 0; i < list.size() - 1; i++)
{
temp = list.get(i);
for (int j = i + 1; j < list.size(); j++)
{
if (temp.equals(list.get(j)))
{
System.out.println("第" + (i + 1) + "個跟第" + (j + 1) + "個重復,值是:" + temp);
}
}
}
}
B. java取List中重復的數據!
packageacc.testJSON;
importjava.util.ArrayList;
importjava.util.HashMap;
importjava.util.List;
importjava.util.Map;
importjava.util.Map.Entry;
importjava.util.Set;
publicclassAA{
publicstaticvoidmain(String[]args){
List<Map<Integer,String>>list=newArrayList<Map<Integer,String>>();
Map<Integer,String>map2=newHashMap<Integer,String>();
map2.put(1,"美元");
map2.put(2,"日元");
map2.put(3,"歐元");
map2.put(4,"日元");
map2.put(5,"人民幣");
map2.put(10,"歐元");
list.add(map2);
System.out.println("--------之前---------------");
for(inti=0;i<list.size();i++){
Map<Integer,String>tempMap=list.get(i);
for(Entry<Integer,String>e:tempMap.entrySet()){
System.out.println("K:"+e.getKey()+"v:"+e.getValue());
}}
System.out.println("---------------------開始處理--------------------------");
List<Map<String,Integer>>newList=newArrayList<Map<String,Integer>>();
AAaa=newAA();
newList=aa.executMoedth(list);//如果有相同的
System.out.println("--------之後---------------");
for(inti=0;i<newList.size();i++){
Map<String,Integer>tempMap=newList.get(i);
for(Entry<String,Integer>e:tempMap.entrySet()){
System.out.println(e.getValue()+":"+e.getKey());
}}
}
publicList<Map<String,Integer>>executMoedth(List<Map<Integer,String>>list){
System.out.println("---------------------處理中--------------------------");
List<Map<String,Integer>>newList=newArrayList<Map<String,Integer>>();
Map<String,Integer>newMap=newHashMap<String,Integer>();
for(inti=0;i<list.size();i++){
Map<Integer,String>tempMap=list.get(i);//第i個list中的Map
for(Entry<Integer,String>e1:tempMap.entrySet()){//map遍歷
inttempi=0;
for(Entry<Integer,String>e2:tempMap.entrySet()){//map遍歷
if(e1.getValue().equals(e2.getValue())){//如果相等
if(!e1.equals(e2))
/*tempi++;
if(tempi>=1)*/
{
//newMap.remove(e1.getKey());//移除第一個添加的
intnewValus=e1.getKey()+e2.getKey();//得到總錢數
StringnewKey=e1.getValue();
newMap.remove(e1.getValue());//幹掉
newMap.remove(e2.getValue());//幹掉
System.out.println("找到一個已處理:"+newKey+newValus);
newMap.put(newKey,newValus);//新集合
}
//如果新集合里沒有的
if(!newMap.containsKey(e1.getValue()))
newMap.put(e1.getValue(),e1.getKey());//新集合
}
}
}
newList.add(newMap);//新集合
}
returnnewList;
}
}
C. java里有沒有專門判斷List里有重復的數據
List是有序的可重復集合, 如果要判斷list中是否有一個元素 , 可以用 list.contains(obj)
如果只是為了判斷list中是否有重復版 , 方法有權很多種, 比如可以將list轉換為set
Set set = new HashSet<>(list);
set是無需不可重復的集合 , list轉成set之後 , 如果set的size比 list的size小 , 說明有重復元素
也可以遍歷list , 放入Map , 用list的泛型作為 map 的 key 類型 , 而出現的次數作為 map的value , 這樣就能很容易看出來 list中的元素有沒有重復 , 哪個有重復 , 重復了幾次
D. Java中如何判斷List中一部分數據是否重復
方法一:將元素抄用Set.add()方法逐一插入到一個Set中,觀察add()方法的返回值,如果返回false說明當前元素重復。元素所屬的類需要重寫equals()和hashCode()方法。
方法二:將所有元素復制到一個新List中並用List.sort()方法排序,然後遍歷該List檢查相鄰每兩個元素是否重復。元素所屬的類必須實現Comparable介面。
E. java 項目 , List<實體>,需要獲取list中的重復數據
java項目中獲取list重復數據可以使用list的replicateIndex方法,實例如下:
public static void main(String[] args) throws Exception {
<String> list = new ArrayList<String>();
list.add("123");
list.add("456");
list.add("555");
list.add("123");
list.add("444");
list.add("123");
// 輸出原 List 的內容
for (int i = 0; i < list.size(); i++) {
System.out.printf("%2d --> %s%n", i, list.get(i));
}
System.out.println("=============");
// 輸出查找重復元素的內容
int[] indexArray = replicateIndex(list, "123");
for (int index : indexArray) {
System.out.printf("%2d --> %s%n", index, list.get(index));
}
}
public static <T> int[] replicateIndex(List<T> list, T str) throws Exception{
List<T> tmp = new ArrayList<T>(list);
int[] index = new int[Collections.frequency(list, str)];
int start = tmp.indexOf(str);
int end = tmp.lastIndexOf(str);
int i = 0;
if(start < 0) {
throw new Exception("數組中不存在 " + str + " 元素!");
}
index[i] = start;
while (start != end) {
index[++i] = end;
tmp = tmp.subList(0, end);
end = tmp.lastIndexOf(str);
}
Arrays.sort(index);
return index;
}
F. java 判斷數據是否有重復的
把數據加入集合,比如List,可以用contains()方法查詢集合中是否包含當前數據。比如:
List<String>list=new ArrayList<String>();
list.add("abc");
.....
if(list.contains("jkf")) //如果集合中有"jkf",則返回true
如果是要剔除重復數據,加入Set中,會自動剔除重復數據。