zoukankan      html  css  js  c++  java
  • [改善Java代码]集合运算时使用更优雅的方式

    在初中代数中,我们经常会求两个集合的并集、交集、差集等,在Java中也存在着此 类运算,那如何实现呢? 一提到此类集合操作,大部分的实现者都会说:对两个集合进行遍历,即可求出结果。是的,遍历可以实现并集、交集、差集等运算,但这不是最优雅的处理方式。下面来看看如何进行更优雅、快速、方便的集合操作。

    (1) 并集,(2)交集,(3)差集(补集),(4)无重复并集.

    也叫做合集,把两个集合加起来即可,这非常简单,代码如下:

     1 import java.util.ArrayList;
     2 import java.util.List;
     3 
     4 public class Client {
     5     public static void main(String[] args) {
     6         List<String> list1 = new ArrayList<String>();
     7         list1.add("A");
     8         list1.add("B");
     9         List<String> list2 = new ArrayList<String>();
    10         list2.add("C");
    11         list2.add("B");
    12         
    13         //并集
    14         //list1.addAll(list2);//[A, B, C, B]
    15 
    16         //交集
    17         //list1.retainAll(list2);//[B]
    18 
    19         //补集 list1有,但是list2没有的
    20         //list1.removeAll(list2);//[A]
    21 
    22         /*无重复并集*/
    23         //删除在list1中出现的元素
    24         list2.removeAll(list1);
    25         //把剩余的list2元素加到list1中
    26         list1.addAll(list2);
    27         System.out.println(list1);    //[A, B, C]
    28     }
    29 }

     为什么介绍并集,交集,差集呢?这是因为如果检查一下代码,就会发现,很少有程序员使用JDK提供的方法来实现这些集合操作.基本上都是采用的标准的嵌套for循环:要并集就是加法,要交集了就使用contains判断是否存在.要差集了就使用!contains(不包含),有时候还要为这类操作提供一个单独的方法,看似很规范,但已经脱离了优雅的味道.

    集合的这些操作在持久层中使用得非常频繁,从数据库中取出的就是多个数据集合,之后我们就可以使用集合的各种方法构建我们需要的数据了,需要两个集合的and结果,那是 交集,需要两个集合的or结果,那是并集,需要两个集合的not结果,那是差集。

  • 相关阅读:
    000 初步使用Kotlin开发Android应用
    使用Kotlin开发Android应用
    使用Kotlin开发Android应用(IV):自定义视图和Android扩展
    使用Kotlin开发Android应用(III):扩展函数和默认值
    使用Kotlin开发Android应用(II):创建新工程
    使用Kotlin开发Android应用
    Retrofit2.2说明-简单使用
    Log图文详解(Log.v,Log.d,Log.i,Log.w,Log.e)
    android开发环境 eclipse + android sdk配置笔记
    Android 百度地图定位(手动+自动) 安卓开发教程
  • 原文地址:https://www.cnblogs.com/DreamDrive/p/5660165.html
Copyright © 2011-2022 走看看