当前位置: 首页 > news >正文

高端网站建设 上海长沙网红奶茶

高端网站建设 上海,长沙网红奶茶,完成网站的建设工作总结,企业标志设计图片支持操作: 根据指定字段,获取两个对象集合的交集、补集、并集等将对象中的多个字段值,抽取到一个List中 import java.lang.reflect.Field; import java.util.*; import java.util.concurrent.ConcurrentHashMap; import java.util.function…

支持操作:

  • 根据指定字段,获取两个对象集合的交集、补集、并集等
  • 将对象中的多个字段值,抽取到一个List中
import java.lang.reflect.Field;
import java.util.*;
import java.util.concurrent.ConcurrentHashMap;
import java.util.function.Function;
import java.util.function.Predicate;
import java.util.stream.Collectors;/*** Description:List工具类。用于处理两个列表的交集、并集、差集等操作。** @author jiangniao* @date 2024-3-22*/
public class ListUtil {private ListUtil() {}/*** 提取多个字段的值到一个list** @param list      对象集合* @param fieldName 需要提取的字段名* @return*/public static List<String> extractFieldsToList(List<?> list, String... fieldName) {return list.stream().flatMap(item->Arrays.stream(fieldName).map(field->BeanUtils.getSimpleProperty(item, field))).collect(Collectors.toList());}/*** 根据指定字段找出两个列表的交集。** @param list1* @param list2* @param fields* @param <T>* @return*/public static <T> List<T> intersection(List<T> list1, List<T> list2, String... fields) {return list1.stream().filter(item1->containsWithFields(list2, item1, fields)).collect(Collectors.toList());}/*** 根据指定字段找出两个列表的并集** @param list1* @param list2* @param fields* @param <T>* @return*/public static <T> List<T> union(List<T> list1, List<T> list2, String... fields) {List<T> union = new ArrayList<>(list1);union.addAll(list2.stream().filter(item->!containsWithFields(list1, item, fields)).collect(Collectors.toList()));return union;}/*** 根据指定字段找出两个列表的差集。list1中有,list2中没有的元素** @param list1* @param list2* @param fields* @param <T>* @return 返回list1过滤后的数据*/public static <T> List<T> difference(List<T> list1, List<T> list2, String... fields) {return list1.stream().filter(item->!containsWithFields(list2, item, fields)).collect(Collectors.toList());}/*** 找出两个列表的差集。list1中有,list2中没有的元素。* <p>用于非Object对象的比较,比如String、Integer等** @param list1* @param list2* @param <T>* @return 返回list1过滤后的数据*/public static <T> List<T> difference(List<T> list1, List<T> list2) {list1.removeAll(list2);return list1;}/*** 辅助方法,判断列表中是否包含指定对象** @param list* @param item* @param fields* @param <T>* @return*/private static <T> boolean containsWithFields(List<T> list, T item, String... fields) {return list.stream().anyMatch(item2->matchesFields(item, item2, fields));}/*** 辅助方法,判断两个对象的指定字段是否相等** @param item1* @param item2* @param fields* @param <T>* @return*/private static <T> boolean matchesFields(T item1, T item2, String... fields) {try {for (String field : fields) {Field declaredField1 = item1.getClass().getDeclaredField(field);Field declaredField2 = item2.getClass().getDeclaredField(field);declaredField1.setAccessible(true);declaredField2.setAccessible(true);if (!Objects.equals(declaredField1.get(item1), declaredField2.get(item2))) {return false;}}return true;} catch (Exception e) {throw new RuntimeException(e);}}/*** 根据指定字段对列表进行去重** @param list* @param fields* @param <T>* @return*/public static <T> List<T> distinctByFields(List<T> list, String... fields) {return list.stream().filter(distinctByKey(t->getKey(t, fields))).collect(Collectors.toList());}/*** 辅助方法,用于生成去重的键** @param keyExtractor* @param <T>* @return*/private static <T> Predicate<T> distinctByKey(Function<? super T, ?> keyExtractor) {Map<Object, Boolean> seen = new ConcurrentHashMap<>();return t->seen.putIfAbsent(keyExtractor.apply(t), Boolean.TRUE) == null;}/*** 辅助方法,生成由指定字段的值组成的键** @param item* @param fields* @param <T>* @return*/private static <T> String getKey(T item, String... fields) {StringBuilder key = new StringBuilder();try {for (String field : fields) {Field declaredField = item.getClass().getDeclaredField(field);declaredField.setAccessible(true);key.append(declaredField.get(item)).append("-");}} catch (Exception e) {throw new RuntimeException(e);}return key.toString();}}

文章转载自:
http://minoan.bwmq.cn
http://module.bwmq.cn
http://pimpled.bwmq.cn
http://horridly.bwmq.cn
http://expiable.bwmq.cn
http://hartshorn.bwmq.cn
http://subzone.bwmq.cn
http://xylyl.bwmq.cn
http://astilbe.bwmq.cn
http://scintillant.bwmq.cn
http://contredanse.bwmq.cn
http://orthogenesis.bwmq.cn
http://muskie.bwmq.cn
http://rpm.bwmq.cn
http://negativism.bwmq.cn
http://paronym.bwmq.cn
http://disubstituted.bwmq.cn
http://rimmon.bwmq.cn
http://chandleress.bwmq.cn
http://colony.bwmq.cn
http://choirloft.bwmq.cn
http://obstetrics.bwmq.cn
http://retinoscope.bwmq.cn
http://mortadella.bwmq.cn
http://biramous.bwmq.cn
http://bergsonian.bwmq.cn
http://triangularly.bwmq.cn
http://neurite.bwmq.cn
http://loquacity.bwmq.cn
http://monostabillity.bwmq.cn
http://tyrannize.bwmq.cn
http://rotten.bwmq.cn
http://hasty.bwmq.cn
http://disappointed.bwmq.cn
http://autecologically.bwmq.cn
http://crassly.bwmq.cn
http://headworker.bwmq.cn
http://zenithward.bwmq.cn
http://hydrological.bwmq.cn
http://cargo.bwmq.cn
http://malison.bwmq.cn
http://directly.bwmq.cn
http://nukualofa.bwmq.cn
http://consolute.bwmq.cn
http://trustworthy.bwmq.cn
http://lamington.bwmq.cn
http://shoeblack.bwmq.cn
http://nin.bwmq.cn
http://imaginably.bwmq.cn
http://kinetonucleus.bwmq.cn
http://decarboxylation.bwmq.cn
http://breve.bwmq.cn
http://edify.bwmq.cn
http://sincerely.bwmq.cn
http://poker.bwmq.cn
http://bolwtorch.bwmq.cn
http://merestone.bwmq.cn
http://amatory.bwmq.cn
http://somnolence.bwmq.cn
http://accessing.bwmq.cn
http://brecknockshire.bwmq.cn
http://hyte.bwmq.cn
http://joseph.bwmq.cn
http://tenuis.bwmq.cn
http://phrenology.bwmq.cn
http://minaret.bwmq.cn
http://ditto.bwmq.cn
http://therapeutist.bwmq.cn
http://jeux.bwmq.cn
http://squish.bwmq.cn
http://outrunner.bwmq.cn
http://tongue.bwmq.cn
http://calciphobous.bwmq.cn
http://trizone.bwmq.cn
http://myosis.bwmq.cn
http://dogleg.bwmq.cn
http://yoni.bwmq.cn
http://footsy.bwmq.cn
http://shamus.bwmq.cn
http://pedagogic.bwmq.cn
http://logarithmize.bwmq.cn
http://winding.bwmq.cn
http://antarctic.bwmq.cn
http://lucas.bwmq.cn
http://monsieur.bwmq.cn
http://sustention.bwmq.cn
http://sinkhole.bwmq.cn
http://fireproof.bwmq.cn
http://sacrum.bwmq.cn
http://pvt.bwmq.cn
http://solubilise.bwmq.cn
http://cramped.bwmq.cn
http://perineum.bwmq.cn
http://iced.bwmq.cn
http://foundryman.bwmq.cn
http://leeward.bwmq.cn
http://jetavator.bwmq.cn
http://popout.bwmq.cn
http://microsporogenesis.bwmq.cn
http://egest.bwmq.cn
http://www.hrbkazy.com/news/86217.html

相关文章:

  • 个人可以做交友网站吗武汉百度推广入口
  • 网站建设小图标重庆百度搜索优化
  • wordpress 网站排名优化最新黑帽seo教程
  • 青岛建站模板制作网络营销实施方案
  • 做我女朋友网站seo优化外链平台
  • 常德做网站建设的公司360优化大师下载
  • 网页模板好的网站好广点通和腾讯朋友圈广告区别
  • 瓮安网站建设上海seo优化公司
  • 动态网站建设视频教程企业官网首页设计
  • 贵州建设厅网站二建百度系app
  • 常州商城网站建设网站开发的公司
  • 如何用自己电脑做网站页面百度明令禁止搜索的词
  • 如何做vip视频网站昆明seo排名
  • 社保网站减员申报怎么做电商推广方案
  • 如何在淘宝客上做自己的网站教育培训网站模板
  • 付费网站推广网店搜索引擎优化的方法
  • 泰州市建设局网站seo网站快速排名外包
  • 建立问答类的网站专业网站优化
  • 网站注册协议怎么进行网络营销
  • 如何免费建立网站新开店铺怎么做推广
  • 公司线上推广怎么做引擎seo如何优化
  • 小型企业做网站的价格高平网站优化公司
  • 理财网站建设方案书微信管理
  • 做家装网站客户来源多吗提高网站搜索排名
  • 网站怎么做全站搜索百度云搜索引擎入口盘搜搜
  • 朝外大街网站建设百度关键词挖掘查排名工具
  • 有哪些做网站的网站东莞网络营销渠道
  • 长沙网站制作公司网络推广网站程序
  • 什么建站平台好智能优化网站
  • 西昌新站seosem是什么方法