`

list set 转换

阅读更多
数组转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的这两个方法是合适的,他就不会去覆盖
分享到:
评论

相关推荐

    java List、Set与Array之间的相互转换

    - **Set转Array**: 与List相似,你可以先将Set转换为List,再将List转换为Array: ```java Set<String> set = ...; List<String> list = new ArrayList(set); String[] array = new String[list.size()]; list...

    python 集合 并集、交集 Series list set 转换的实例

    通过调用list对象的set方法或者直接将list作为参数传递给set构造函数,可以轻松完成这一转换。例如: ```python l = ['***'] s = set(l) # 结果为 set(['1', '2', '3', '4']) ``` 同样的,如果要将集合转换回列表...

    list,set,map,数组间的相互转换

    // 将Set转换为List List<String> list = new ArrayList(set); // 输出结果 System.out.println(list); // 输出: [banana, orange, apple] 或其他顺序 } } ``` ### 3. 数组到List的转换 数组可以直接转换为`...

    测试报告与总结\list,set,map,数组间的相互转换

    测试报告与总结\list,set,map,数组间的相互转换.rar测试报告与总结\list,set,map,数组间的相互转换.rar测试报告与总结\list,set,map,数组间的相互转换.rar测试报告与总结\list,set,map,数组间的相互转换.rar

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

    将数组转换为List 将List转换为数组 将数组转换为Dictionary 将Dictionary 转换为数组 将List转换为Dictionary 将Dictionary转换为List 首先这里定义了一个“Student”的类,它有三个自动实现属性。 class ...

    set转成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);

    java中List、Array、Map、Set等集合相互转换

    Java 中 List、Array、Map、Set 等集合相互转换 在 Java 中,集合类型的转换是非常常见的操作,例如将 List 转换为 Array、将 Array 转换为 List、将 Map 转换为 List 等等。今天,我们将详细介绍 Java 中 List、...

    list,set,map,数组之间的相互转换详细解析

    在Java编程语言中,数据结构是...此外,数组转换成List或Set时,如果数组包含null元素,转换后的集合可能不包含这些null元素,因为集合通常不允许null。在实际应用中,应根据具体情况选择合适的数据结构和转换方法。

    java list,set,map,数组间的相互转换详解

    将Set转换为List同样简单,可以使用ArrayList的构造函数,传入Set实例: ```java Set<String> set = new HashSet(); // 添加元素到set List<String> list = new ArrayList(set); ``` 3. **数组转List** ...

    Set-List-Map.rar_DEMO_list set map

    4. 可能还有关于集合转换的示例,如从`List`转为`Set`,或者将`Map`的键或值转化为`List`。 5. 最后,可能包含了集合的遍历策略,如迭代器、增强for循环(foreach)以及流API的使用。 通过这个压缩包的学习,初学...

    xml格式的字符串转换成List

    当我们需要将XML格式的字符串转换为List对象时,这通常涉及到数据解析的过程。这篇博客“xml格式的字符串转换成List”提供了相关的方法和步骤,以下是对这个主题的详细讲解。 首先,理解XML字符串。XML字符串是由一...

    java List XMl转换DEMO

    有时,我们需要将List对象转换为XML字符串,或者将XML数据解析为List对象。这个“java List XMl转换DEMO”就是用来演示这两个过程的实例。 首先,我们来讨论如何实现`List2XML`。在Java中,我们可以使用DOM...

    JAVA中list,set,数组之间的转换详解

    反过来,将Set转换为List,可以创建一个新的List,然后遍历Set并添加到新List中,或者使用`new ArrayList(set)`,但这仅适用于Set实现了Iterable接口的情况,如HashSet。 总结一下,Java中List、Set和数组之间的...

    Java 在 Array 和 Set 之间进行转换的示例.rar

    以下是一些关于Java中Array和Set转换的知识点: 1. **转换为Set:** - **Arrays.asList()**:首先,可以将数组转换为ArrayList,然后利用ArrayList的构造函数创建一个Set。这是因为Set接口没有提供直接从数组创建...

    java的序列 map list set sequene

    在Java编程语言中,Map、List和Set是三个核心的集合接口,它们分别代表了键值对、有序元素列表和不重复元素集合。这三种数据结构在实际开发中有着广泛的应用,理解它们的特性和使用方式是每个Java开发者的基础技能。...

    MapStruct实体转换及List转换的方法讲解

    MapStruct实体转换及List转换的方法讲解 MapStruct是一个Java库,用于简化实体对象之间的映射。它提供了简单、灵活和高效的方式来实现实体对象之间的转换。MapStruct支持多种映射方式,包括单个对象的映射、列表的...

    python-str,list,set间的转换实例

    这篇文章主要涉及了Python中的字符串(str)、列表(list)和集合(set)之间的转换方法,并通过实例展示如何将它们互相转换。接下来,我将详细解释这些转换的具体操作及其应用。 首先,让我们来看看字符串转换为...

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

    本篇文章将详细介绍如何将Map和List集合转换为XML字符串,以及如何将XML字符串反向转换回Map和List集合。 首先,让我们探讨`Map`集合转成XML字符串的过程。一个`Map`对象存储键值对,可以使用各种库如`JAXB (Java ...

    List<Map>转化为List工具类

    一般使用springjdbc、hibernate的sql查询,库获取到的数据都是List, Object&gt;&gt;结果集,如果我们要转化为JavaBean,则需要做一系列的map.get(),然后obj.set()。 此工程中就是解决List, Object&gt;&gt;转化为JavaBean工具类...

Global site tag (gtag.js) - Google Analytics