★ 数组转Collection
使用Apache Jakarta Commons Collections:
- import org.apache.commons.collections.CollectionUtils;
-
-
String[] strArray = {"aaa", "bbb", "ccc"};
-
List strList = new ArrayList();
-
Set strSet = new HashSet();
- CollectionUtils.addAll(strList, strArray);
- CollectionUtils.addAll(strSet, strArray);
CollectionUtils.addAll()方法的实现很简单,只是循环使用了Collection的add()方法而已。
如果只是想将数组转换成List,可以用JDK中的java.util.Arrays类:
- import java.util.Arrays;
-
-
String[] strArray = {"aaa", "bbb", "ccc"};
- List strList = Arrays.asList(strArray);
不过Arrays.asList()方法返回的List不能add对象,因为该方法的实现是使用参数引用的数组的大小来new的一个ArrayList。
★ Collection转数组
直接使用Collection的toArray()方法,该方法有两个重载版本:
- Object[] toArray();
-
- 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的这两个方法是合适的,他就不会去覆盖。
分享到:
相关推荐
- **Set转Array**: 与List相似,你可以先将Set转换为List,再将List转换为Array: ```java Set<String> set = ...; List<String> list = new ArrayList(set); String[] array = new String[list.size()]; list...
Java相关 public static void main(String[] args) { User u1=new User(1, "zhangsan"); User u2=new User(2, ... Set userset=new HashSet(); userset.add(u1); userset.add(u2); userset.add(u3);
// 将List转换为Set Set<String> set = new HashSet(list); // 输出结果 System.out.println(set); // 输出: [orange, banana, apple] } } ``` ### 2. Set到List的转换 同样地,我们也可以将一个`Set`转换为...
将List转换为数组 将数组转换为Dictionary 将Dictionary 转换为数组 将List转换为Dictionary 将Dictionary转换为List 首先这里定义了一个“Student”的类,它有三个自动实现属性。 class Student { public ...
Java 中 List、Array、Map、Set 等集合相互转换 在 Java 中,集合类型的转换是非常常见的操作,例如将 List 转换为 Array、将 Array 转换为 List、将 Map 转换为 List 等等。今天,我们将详细介绍 Java 中 List、...
测试报告与总结\list,set,map,数组间的相互转换.rar测试报告与总结\list,set,map,数组间的相互转换.rar测试报告与总结\list,set,map,数组间的相互转换.rar测试报告与总结\list,set,map,数组间的相互转换.rar
要将一个List转换为Set,可以使用HashSet的构造函数,它接受一个Collection作为参数。例如: ```java List<String> list = new ArrayList(); // 添加元素到list Set<String> set = new HashSet(list); ``` ...
然而,需要注意的是,不同数据结构间的转换可能会改变原有的顺序,比如List转Set时会丢失原有顺序,因为Set不保证元素的顺序。此外,数组转换成List或Set时,如果数组包含null元素,转换后的集合可能不包含这些null...
当处理XML文件时,有时我们需要将其内容转换为Java对象,如List,以便于操作和处理。本篇文章将深入探讨如何将XML转换为指定类型的List数组,并涉及多层数据结构的处理。 1. **Java XML解析库** 在Java中,有多种...
在Java编程语言中,Array和...了解这些转换方法和特性后,开发者可以根据项目需求灵活地在Array和Set之间切换,优化代码性能和功能。在处理数据结构时,选择合适的容器是非常关键的,这直接影响到程序的效率和可读性。
要将List转换为Set,可以直接使用Set的构造函数,如`new HashSet(list)`,这将自动去除重复元素。反过来,将Set转换为List,可以创建一个新的List,然后遍历Set并添加到新List中,或者使用`new ArrayList(set)`,但...
有时,我们需要将List对象转换为XML字符串,或者将XML数据解析为List对象。这个“java List XMl转换DEMO”就是用来演示这两个过程的实例。 首先,我们来讨论如何实现`List2XML`。在Java中,我们可以使用DOM...
4. 可能还有关于集合转换的示例,如从`List`转为`Set`,或者将`Map`的键或值转化为`List`。 5. 最后,可能包含了集合的遍历策略,如迭代器、增强for循环(foreach)以及流API的使用。 通过这个压缩包的学习,初学...
MapStruct实体转换及List转换的方法讲解 MapStruct是一个Java库,用于简化实体对象之间的映射。它提供了简单、灵活和高效的方式来实现实体对象之间的转换。MapStruct支持多种映射方式,包括单个对象的映射、列表的...
这个压缩包"**C#将List与xml互转_支持简单类型.rar**"包含了一个示例文本文件"**C#将List与xml互转_支持简单类型.txt**"和一个可能用于测试的数据文件"**1.xls**"。 首先,让我们理解List和XML的基本概念。List是...
在Java编程中,`Reader`接口是用于读取字符流的一种抽象类,它提供了一种方式来处理文本数据。...以上就是如何从`Reader`转换为`List`和实体模型的基本方法,这些知识在处理大量文本数据时非常有用。
本篇文章将详细介绍如何将Map和List集合转换为XML字符串,以及如何将XML字符串反向转换回Map和List集合。 首先,让我们探讨`Map`集合转成XML字符串的过程。一个`Map`对象存储键值对,可以使用各种库如`JAXB (Java ...
这篇博客“xml格式的字符串转换成List”提供了相关的方法和步骤,以下是对这个主题的详细讲解。 首先,理解XML字符串。XML字符串是由一系列标签、属性和内容组成的,这些元素按照特定的规则组织,用于描述数据的...
在C#编程中,XML(eXtensible Markup Language)是一种用于存储和传输数据的标记语言,而集合List是.NET Framework中的一个常用数据结构,用于存储同一...如果需要,你可以查阅这个文件来加深对XML到List转换的理解。
一般使用springjdbc、hibernate的sql查询,库获取到的数据都是List, Object>>结果集,如果我们要转化为JavaBean,则需要做一系列的map.get(),然后obj.set()。 此工程中就是解决List, Object>>转化为JavaBean工具类...