`

怎么样删除list里面相同的对象??

 
阅读更多
public class TestSet 
{ 
 public static void main(String[] args) 
 { 
    Random rand = new Random(); 
    Set<String> setStr = new HashSet<String>(); 
    String 
     aa=new String("aaa"), 
     bb=new String("aaa"); 
    System.out.println(aa==bb); 
    setStr.add(aa); 
    setStr.add(bb); 
    System.out.println(setStr); 
    System.out.println(setStr.size()); 
    System.out.println(); 
  } 
} 
//显示结果是: 
//false 
//[aaa] 
//1 
//HashSet里持有的对象是String类或者Integer类,那就可以保证元素的值不重复,但如果存放的是我自己写的类的话,那就肯定会有重复的元素,比如下面这段程序: 
  Set<MyObj> setobj = new HashSet<MyObj>(); 
  for(int i=0;i<30;i++) 
  { 
   setobj.add(new MyObj(rand.nextInt(10))); 
  } 
  System.out.println(setobj); 
  System.out.println(setobj.size()); 
  System.out.println(); 
//显示结果如下: 
//[9, 1, 5, 3, 1, 7, 6, 5, 6, 1, 3, 2, 5, 0, 3, 6, 6, 6, 9, 8, 6, 5, 5, 8, 5, 1, 1, 2, 3, 0] 
//30
//很明显元素的值重复了,谁能告诉我这是为什么呢??哎
//另外,MyObj类如下: 
public class MyObj implements Comparable<MyObj>,Serializable 
{ 
 private int i; 
 public MyObj(int i) 
 { 
  this.i=i; 
 } 
 public int getI() 
 { 
  return i; 
 } 
 public String toString() 
 { 
  return Integer.toString(i); 
 } 
  
 public int compareTo(MyObj obj) 
 { 
  if (this.getI()>obj.getI()) 
   return 1; 
  else if (this.getI()==obj.getI()) 
   return 0; 
  else 
   return -1; 
 } 
}
//给MyObj类加上了一个hashCode()方法和equals()方法,于是我的MyObj也不重复了,可能HashSet中,这两个方法必须被覆盖
分享到:
评论

相关推荐

    list去掉重复对象

    一个list里面有多个对象,对象有几个字段,要求在对象里面不要有重复的数据的实现。

    两个list比较 取不同的对象

    ### 两个List比较取不同的对象 在Java编程中,经常需要对两个`List`进行比较,找出它们之间的差异。这通常涉及到数据结构的理解、算法设计以及编程实现等多个方面。本文将详细探讨如何通过一个示例代码来理解如何...

    C# 修改list所有对象中的某字段

    `List&lt;T&gt;.ForEach()` 方法是C#中的一个扩展方法,它接受一个Action类型的参数,这个参数是一个无返回值但带有一个与List中元素类型相同参数的方法。我们在Lambda表达式中定义了这个方法,然后传给ForEach执行。 ...

    Java中 List《map》把里面map中某个key相同记录的其他key 的 value 合并

    Java中 List《map》把里面map中某个key相同记录的其他key 的 value 合并 Java中 List《map》把里面map中某个key相同记录的其他key 的 value 合并

    Java中Json字符串直接转换为对象的方法(包括多层List集合)

    本文将详细介绍如何将JSON字符串直接转换为Java对象,特别是涉及到多层List集合的情况。在本例中,我们将使用`net.sf.json.JSONObject`类来实现这一功能。 首先,确保你的项目中已经引入了必要的库。在使用`...

    list转换成string数组

    ### List转换成String数组 在Java编程语言中,经常需要将`List&lt;String&gt;`类型的数据转换为`String[]`数组类型,以便于进行某些特定的操作或适应某些方法的要求。本文将详细探讨这一转换过程,并通过几个具体的示例来...

    判断List和Map是否相等并合并List中相同的Map

    判断List和Map是否相等并合并List中相同的Map 判断List和Map是否相等是Java编程中一个常见的问题。判断两个List或Map是否相等需要遵循特定的标准。List的相等判断通过equals()方法比较返回true即可。HashSet的相等...

    Java copy对象的工具类

    Java CopyUtil工具类,可以进行对象的深copy,比如:对象里面包含对象,对象里面包含Map,List,Set...等复杂类型的属性都可以copy,copy后的对象与原有对象没有联系,即改变原有对象内容,不会改变copy后的对象里面的...

    Java中List集合对象去重及按属性去重的8种方法

    【Java中List集合对象去重及按属性去重的8种方法】 在Java编程中,当我们处理包含重复元素的List时,有时需要去除其中的重复项。以下文章将详细介绍8种针对List集合对象去重的方法,包括基于对象整体以及按特定属性...

    json嵌套list

    在描述的场景中,“json嵌套list”指的是JSON对象中包含一个或多个列表(数组)的情况,这种结构允许我们存储复杂的数据集合。Struts2是一个流行的Java Web框架,而“json grid”通常是指在Web应用中展示数据的一种...

    js解析json读取List中的实体对象示例

    List中存放多个student对象 2、前台js 中先将结果json串转成对象 代码如下: var obj = eval&#40;“(“+data+”&#41;”); 3、遍历取list 中的对象 代码如下: for(var key in obj){ //第一层循环取到各个list ...

    List对象去重和按照某个字段排序的实现方法

    在上面的代码中,我们首先创建了一个List对象,添加了五个People对象,然后使用HashSet删除了重复元素。结果显示,重复元素被删除成功。 接下来,让我们来看一下List对象的按照某个字段排序。List对象的排序可以...

    计算一个Java对象占用字节数的方法

    在Java编程语言中,了解一个对象占用的内存字节数对于优化内存使用和理解程序性能至关重要。本篇文章将深入探讨如何计算Java对象占用的内存字节数,以及影响这一数值的因素。 首先,Java对象在堆内存中由四个部分...

    List 里面各种关于Linq用法总结

    当我们谈论C#中的List和LINQ结合时,主要指的是在内存中的列表对象上执行查询操作。List是.NET中最常用的动态数组,而LINQ可以方便地对这些列表进行过滤、排序、分组等操作。 3. **LINQ查询表达式** LINQ查询...

    java8中stream流对List操作的一些测试方法

    java8中通过stream流对List类型进行一些操作的测试Demo类

    map/list集合转化成xml字符串 xml字符串转化成map/list集合

    同样的,你可以创建一个解析器来将XML字符串解析成`List`对象,但你需要知道预期的XML结构以便正确地构建对象。 在实际项目中,通常会有更复杂的XML结构,可能包含嵌套的Map和List,这可能需要递归方法或额外的逻辑...

    关于checkboxlist的绑定和遍历checkboxlist

    在.NET框架中,CheckBoxList控件是经常用于网页设计中的一种多选列表控件,它允许用户通过勾选复选框来选择一个或多个选项。本文将深入探讨关于CheckBoxList的绑定和遍历的实现方法及其相关知识点。 一、CheckBox...

    vs2008listcontrl里面修改文字颜色

    标题“vs2008listcontrl里面修改文字颜色”指的是在VS2008的MFC应用中,如何改变ListCtrl控件中文字的颜色。在默认情况下,ListCtrl中的文本颜色通常与系统设置的文本颜色一致,但有时为了提高界面的可读性或设计...

    java中set、list和map的使用方法实例

    // java中对象容器主要有Set,List和Map三个接口类。 // 迭代器(Iterator)模式,又叫做游标(Cursor)模式。 // GOF给出的定义为:提供一种方法访问一个容器(container)对象中的各个元素, // 而又不需暴露该...

    struts2的方式返回json到jsp页面 List,Map,Object,对象各种操作都有....MyEclipse的,导入直接看效果。

    jsp通过Ajax无刷新获取Action返回的模拟数据,然后通过struts2转化成json数据返回页面....这里面Map,List,对象等等,一些常用的操作都有。主要的代码在Action和 json.js里面。适合新手入门

Global site tag (gtag.js) - Google Analytics