`

集合类转换

    博客分类:
  • Java
 
阅读更多
★ 数组转Collection

使用Apache Jakarta Commons Collections:

1.import org.apache.commons.collections.CollectionUtils;
2.
3.String[] strArray = {"aaa", "bbb", "ccc"};
4.List strList = new ArrayList();
5.Set strSet = new HashSet();
6.CollectionUtils.addAll(strList, strArray);
7.CollectionUtils.addAll(strSet, strArray);
CollectionUtils.addAll()方法的实现很简单,只是循环使用了Collection的add()方法而已。

如果只是想将数组转换成List,可以用JDK中的java.util.Arrays类:

1.import java.util.Arrays;
2.
3.String[] strArray = {"aaa", "bbb", "ccc"};
4.List strList = Arrays.asList(strArray);
不过Arrays.asList()方法返回的List不能add对象,因为该方法的实现是使用参数引用的数组的大小来new的一个ArrayList。



★ Collection转数组

直接使用Collection的toArray()方法,该方法有两个重载版本:

1.Object[] toArray();
2.
3.T[] toArray(T[] a);


★ Map转Collection

直接使用Map的values()方法。



★ List和Set转换

List list = new ArrayList(new Hashset());// Fixed-size list
List list = Arrays.asList(array);// Growable
list list = new LinkedList(Arrays.asList(array));// Duplicate elements are discarded
Set set = new HashSet(Arrays.asList(array));

//=============================================================//

---------------------------------------------------------------

List list = new ArrayList(new Hashset());
Set set = new HashSet(list);
---------------------------------------------------------------

// Fixed-size list
List list = Arrays.asList(array);

// Growable list
list = new LinkedList(Arrays.asList(array));

// Duplicate elements are discarded
Set set = new HashSet(Arrays.asList(array));

//========================================================//

import java.util.*;

public class test3 {
public test3() {
}

public static void main(String[] args){
String xx = new String("1");
String yy = new String("2");
List list = new ArrayList();
list.add(xx);
Set set = new HashSet(list);
System.out.println(set.contains(xx));
System.out.println(set.contains(yy));
}
}

——————————————————————————————————
true
false

//================================================================//

解释一下

Object的hashCode返回值基本上是对象的内存地址

Object的equals方法判断两个Object对象是否“相等”的依据其实是两个对象是否“相同”

所以,如果obj1 和 obj2 都是Object实例,那么 obj1.equals(obj2) 和 obj1 == obj2 是等价的

equals和hashCode这两个方法的关系是:

如果两个对象equals返回true,那么它们的hashCode必须返回相同的integer值。反之,则不做要求,但建议是:如果它们返回相同的hashCode,那么equals应该返回true。

因为上面的原因,如果某个类覆盖了Object的equals方法,那它就必须覆盖hashCode方法,以满足上述要求。

对于自己定义的类,是否要覆盖这些方法,完全取决于自己的需要,如果需要放宽两个对象相等的条件,就需要覆盖。如果不需要,就用Object的实现好了,完全没有问题。

例如,对于Integer类,它需要将两个Integer相等的条件放宽到只要它们包含的数值相等,两个对象就相等,它就会覆盖equals方法,同时,它必须覆盖hashCode方法,返回值很简单,就是它包含的整型值。

再例如,Thread类就没有覆盖这两个方法,它作为Object的直接继承,写Thread类的人认为继承使用Ojbect的这两个方法是合适的,他就不会去覆盖。

分享到:
评论

相关推荐

    浅谈常用字符串与集合类转换的工具类

    下面小编就为大家带来一篇浅谈常用字符串与集合类转换的工具类。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧

    实体集合转另一个实体集合的工具类

    网上有好多实体转另一个实体的方法,但是几乎没有实体集合直接转另一个实体集合的工具类,自己写了一个,供大家使用。其实原理很简单,就是泛型。

    vopo转换工具类及所需jar

    简单的vopo转换功能及依赖jar

    C# JSON通用转换类

    5. 对象集合转换Json 6. 普通集合转换Json 7. DataSet转换为Json 8. Datatable转换为Json 9. DataReader转换为Json 10. 解析JSON字符串生成对象实体 11. 解析JSON数组生成对象实体集合 12. 反序列化JSON到给定的匿名...

    xml与实体类转换工具

    XML与实体类的相互转换工具,util是工具类,MyTest包含实体类转xml字符串以及XML字符串转实体类的方法,需要引入外部依赖或jar包,亲测可用

    json工具类,java日期转换,字符串转换等各种工具类

    json读取 java日期转换 字符串转换 各种类型互相转换 集合排序 日期处理等,别看分多,里边包含13中java常用的公用类,绝对物超所值。

    Java对象、数组、集合转换为Json(Json转化为Java对象、数组、集合)

    这是本人写的一个基于JSON的完整项目,实现了Java对象、数组、集合转换为Json(Json转化为Java对象、数组、集合)。这是一个完整的项目,下载解压后直接导入MyEclipse/Eclipse中,运行com.demo.JSONDemo类即可看到效果...

    数组集合应用工具类

    1.将数组转换成list集合 2.将拼接的string字符串转换成list集合 3.将list集合变成元素拼接形式 4.集合去重

    修改phprpc源码以支持集合类的string类型的转换

    NULL 博文链接:https://chembo.iteye.com/blog/905038

    Json格式转换类.zip

    C#json转换类,list转json,对象转Json,对象集合转Json,DataSet转换为Json,Datatable转换为Json,DataReader转换为Json

    Java中各个数据类型之间的转换

    该类类型转换很可能存在精度的损失,所以必须书写相应的代码,并且能够忍受该种损失时才进行该类型的转换。 转换规则 从存储范围大的类型到存储范围小的类型。 具体规则为: double→float→long→int→short(char)...

    Dataset转对应的实体集合

    将Dataset数据集转换为需要的实体集合类。

    php_字符集转换类

    * 中文编码集合类库 * * 目前该类库可以实现,简体中文 <-> 繁体中文编码互换,简体中文、繁体中文 -> 拼音单向转换, * 简体中文、繁体中文 <-> UTF8 编码转换,简体中文、繁体中文 -> Unicode单向转换 * * @...

    各类工具集合

    各类工具集合,包括时间转换,mysql客户端,wireshark

    Json 转换工具类

    非常好用的json转换工具类,之前在开发过程中总是遇到需要类似的工具类,但是没有好用的,现在找到一个好用的工具类,分享给大家

    判断集合的工具类

    将collection转换为string. collection中的每个元素都 是自定义类, propertyName object的属性,将集合转成字符串,以,分割。还可以判断集合是否为空

    C#数组中List, Dictionary的相互转换问题

    首先这里定义了一个“Student”的类,它有三个自动实现属性。 class Student { public int Id { get; set; } public string Name { get; set; } public string Gender { get; set; } } 将数组转换为List 将...

    C#DataConverter 数据转换辅助类.cs

    DataConverter 数据转换辅助类,适用于大众内有:DataTable 转换为 实体对象、DataTable 转换 实体集合、SqlDataReader 转换 实体对象、SqlDataReader 转换 实体集合

    json数据转换工具类

    bean转json字符串,JSONArray对象转换成list集合,json字符串转换成list集合,JSONObject转换成map对象,json字符串转换成map对象等等各种方法

    基于java8新特性+反射机制实现list不同实体类互转.zip

    实现list不同泛型之间实体的互转,基于java8新特性+反射机制实现list不同实体类互转,将jdk8的流处理集合互转抽出来成一个工具类,实现lsit

Global site tag (gtag.js) - Google Analytics