javalist重复
㈠ java中,如何去掉LIST里的重复元素
最好的办法是用Set,因为Set里面存放的数据是不重复的。
如果你不想用Set,那还可以向下面这样处版理。
List list_tmp = new ArrayList(); //建立一权个用于临时存放不重复list元素的List集合。
for(Object obj:list){
//可以根据需要,在这里加上强制转型。
//如list里面存放的是一个User对象,那么加上User u = (User) obj;
if(!list_tmp.contains(obj)){ //注意contains方法是通过equals方法进行比较的所以你要根据你自己的需要看是否需要重写list对象里面的equals方法。
list_tmp.add(obj);//如果上面加了强制转型,这里需要写list_tmp.add(u);
}
}
㈡ Java中如何去除List中的重复的值
属性是????
先给你一个看看是不是你需要的好了,
//利用Set的特性,将所有项目放入Set
//中即可移除重复的项目
Set<String>stringSet=newHashSet<String>();
for(Stringelement:plicateArray){
stringSet.add(element);
}
//Set.size()为不重复项目的个数
StringnonDuplicateArray[]=newString[stringSet.size()];
//将Set中的项目取出放到nonDuplicateArray中
Object[]tempArray=stringSet.toArray();
for(inti=0;i<tempArray.length;i++){
nonDuplicateArray[i]=(String)tempArray[i];
}
㈢ 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;
}
㈣ Java中如何判断List中一部分数据是否重复
方法一:将元素用Set.add()方法逐一插入到一个Set中,观察add()方法的返回值,如果返回false说明当前元素重复。元素所属的类需要重写equals()和hashCode()方法。
方法二:将所有元素复制到一个新List中并用List.sort()方法排序,然后遍历该List检查相邻每两个元素是否重复。元素所属的类必须实现Comparable接口。
㈤ java里有没有专门判断List里有重复的数据
你好,既然用list了,那么就不排除会重复,而且list可以是对象,也并不好确认唯一性,可以用map来进行存储确认唯一性。如果一定要把list判断出来的话,可以参考下面的小例子
publicstaticvoidmain(String[]args)
{
List<String>list=newArrayList<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");
Stringtemp="";
for(inti=0;i<list.size()-1;i++)
{
temp=list.get(i);
for(intj=i+1;j<list.size();j++)
{
if(temp.equals(list.get(j)))
{
System.out.println("第"+(i+1)+"个跟第"+(j+1)+"个重复,值是:"+temp);
}
}
}
}
㈥ java 判断list里是否有重复
publicstaticvoidmain(String[]args){
Set<String>s=newHashSet<String>();
List<String>l=newArrayList<String>();
l.add("1");
l.add("2");
l.add("2");
l.add("3");
for(Stringstr:l){
booleanb=s.add(str);
if(!b){
System.out.println(str);
}
}
}
用set判断,并且可以找出哪个重复,set内的元素是不可重复的。
㈦ java中list和set接口 set不可以重复,list可以重复
set 无序不可重复
list 有序可重复
对应set 当存放的元素为 对象时 你让该对象相应的类 覆盖内equals和hashcode两个容方法,判断两个对象是否相等时会调用equals方法去比较。根据你写的equals方法返回true or flase进行判断 ,如果为true则相同 则会覆盖上次的同等对象,如果为false则添加成功。
㈧ java中一个list,如果比较出里面哪几个重复
说了一大来堆没见你自解决问题,加一个循环判断一下就是了嘛
List<String> list = new ArrayList<String>();
list.add("1");
list.add("2");
list.add("3");
list.add("4");
list.add("5");
list.add("3");
list.add("4");
for (int i = 0; i < list.size(); i++) {
for (int j = 0; j < list.size(); j++) {
if (list.get(i).equals(list.get(j))&&j!=i&&i<j) {
System.out.println(i+1+"和"+(j+1)+"重复");
}
}
}
㈨ 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;
}
}
㈩ java中怎样去除list中重复的数据,并且显示重复数据的条数
删除ArrayList中重复数据保条数。
public static void removeDuplicateWithOrder(List list) 。
Set set = new HashSet()
List newList = new ArrayList()
for (Iterator iter = list.iterator(); iter.hasNext();) {
Object element = iter.next();
if (set.add(element))
newList.add(element);
list.clear();
list.addAll(newList);
System.out.println( " remove plicate " + list)。