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

网站建设做的好网上做广告怎么收费

网站建设做的好,网上做广告怎么收费,在洪雅网站做企业招聘,wordpress收费缓存插件文章目录 场景TreeMap.tailMap方法简单分析使用随机值使用treemap实现权重取值将Int改为Double稍微准确一点,因为double随机的值更加多测试main方法 当权重的参数比较多,那么建议使用hutool封装的 场景 按照权重2,8给用户分组为A,B, TreeMap.tailMap方法 treeMap是一种基于红…

文章目录

    • 场景
    • TreeMap.tailMap方法
    • 简单分析
      • 使用随机值
      • 使用treemap实现权重取值
      • 将Int改为Double稍微准确一点,因为double随机的值更加多
      • 测试main方法
    • 当权重的参数比较多,那么建议使用hutool封装的

场景

按照权重2,8给用户分组为A,B,

TreeMap.tailMap方法

treeMap是一种基于红黑树实现的有序映射表,提供了一系列的方法来操作映射表中的元素。其中tailMap方法是用于返回映射表中大于或等于给定键的部分视图。

tailMap方法的定义如下:

   public NavigableMap<K,V> tailMap(K fromKey, boolean inclusive) {return new AscendingSubMap<>(this,false, fromKey, inclusive,true,  null,    true);}

其中,fromKey表示起始键,返回一个从fromKey开始到映射表末尾的部分视图。inclusive是表示是否包含传入的fronKey.这个部分视图是SortedMap类型的,可以进行排序操作。

使用tailMap方法需要注意以下几点:

  1. 如果fromKey不存在于映射表中,则返回的部分视图将包含大于fromKey的所有键值对。
  2. 返回的部分视图是映射表的一个视图,对这个视图所做的修改会影响到原映射表。
  3. 返回的部分视图是有序的,可以进行排序操作。

下面是一个示例代码:

import java.util.TreeMap;
import java.util.SortedMap;public class TreeMapExample {public static void main(String[] args) {TreeMap<Integer, String> treeMap = new TreeMap<>();treeMap.put(1, "one");treeMap.put(2, "two");treeMap.put(3, "three");treeMap.put(4, "four");treeMap.put(5, "five");// 返回大于等于3的部分视图SortedMap<Integer, String> tailMap = treeMap.tailMap(3);System.out.println(tailMap); // 输出 {3=three, 4=four, 5=five}// 修改部分视图tailMap.put(6, "six");System.out.println(treeMap); // 输出 {1=one, 2=two, 3=three, 4=four, 5=five, 6=six}// 对部分视图进行排序SortedMap<Integer, String> sortedTailMap = tailMap.descendingMap();System.out.println(sortedTailMap); // 输出 {6=six, 5=five, 4=four, 3=three}}
}

在上面的示例代码中,首先创建了一个treeMap对象,并向其中添加了5个键值对。然后使用tailMap方法返回了大于等于3的部分视图,并对这个部分视图进行了修改和排序操作。

tailMap方法是Java中treeMap类提供的一个非常有用的方法,可以方便地获取映射表中大于等于指定键的部分视图,并进行排序和修改操作。
针对这个特性可以用来获取权重值

简单分析

好比A:B的权重为2:8,那么相当于A的权重为0->2,B的权重为2->10(2+8)都是包左不包右的;
那我们就可以随机个0-10的值,如果在0->2那么返回A,如果2->10那就返回B

使用随机值

  public static String test1() {Random random = new Random();int i = random.nextInt(10);if (i < 2) {return "A";} else if (i >= 2 && i < 10) {return "B";} else {return "C";}}

使用treemap实现权重取值

   public static String test2() {TreeMap<Integer, String> treeMap = new TreeMap<>();int total = 2 + 8;treeMap.put(2, "A");treeMap.put(total, "B");Random random = new Random();return treeMap.tailMap(random.nextInt(total), false).firstEntry().getValue();}

将Int改为Double稍微准确一点,因为double随机的值更加多

   public static String test3() {TreeMap<Double, String> treeMap = new TreeMap<>();int total = 2 + 8;treeMap.put((double) 2, "A");treeMap.put((double) total, "B");Random random = new Random();return treeMap.tailMap(total * random.nextDouble(), false).firstEntry().getValue();}

测试main方法

package com.study.springbootplus.test;import cn.hutool.core.lang.WeightRandom;
import cn.hutool.core.util.NumberUtil;
import cn.hutool.core.util.RandomUtil;import java.util.ArrayList;
import java.util.List;
import java.util.Random;
import java.util.TreeMap;/*** @ClassName RandomTest* @Author yida* @Date 2023-09-14 18:26* @Description RandomTest*/
public class RandomTest {public static void main(String[] args) {int num_a = 0, num_b = 0, num_c = 0;int testCount = 1000;for (int i = 0; i < testCount; i++) {switch (test3()) {case "A":num_a = num_a + 1;break;case "B":num_b = num_b + 1;break;case "C":num_c = num_c + 1;break;}}System.out.println("A-" + num_a + "-------" + NumberUtil.div(num_a, testCount, 2) * 100 + "%");System.out.println("B-" + num_b + "-------" + NumberUtil.div(num_b, testCount, 2) * 100 + "%");System.out.println("C-" + num_c + "-------" + NumberUtil.div(num_c, testCount, 2) * 100 + "%");}public static String test1() {Random random = new Random();int i = random.nextInt(10);if (i < 2) {return "A";} else if (i >= 2 && i < 10) {return "B";} else {return "C";}}public static String test2() {TreeMap<Integer, String> treeMap = new TreeMap<>();int total = 2 + 8;treeMap.put(2, "A");treeMap.put(total, "B");Random random = new Random();return treeMap.tailMap(random.nextInt(total), false).firstEntry().getValue();}public static String test3() {TreeMap<Double, String> treeMap = new TreeMap<>();int total = 2 + 8;treeMap.put((double) 2, "A");treeMap.put((double) total, "B");Random random = new Random();return treeMap.tailMap(total * random.nextDouble(), false).firstEntry().getValue();}public static void test() {List<WeightRandom.WeightObj<String>> weightList = new ArrayList<>();weightList.add(new WeightRandom.WeightObj<>("A", 20));weightList.add(new WeightRandom.WeightObj<>("B", 30));weightList.add(new WeightRandom.WeightObj<>("C", 40));weightList.add(new WeightRandom.WeightObj<>("D", 10));WeightRandom<String> wr = RandomUtil.weightRandom(weightList);String str = "";int num_a = 0, num_b = 0, num_c = 0, num_d = 0;int testCount = 10000;for (int i = 0; i < testCount; i++) {str = wr.next();switch (str) {case "A":num_a = num_a + 1;break;case "B":num_b = num_b + 1;break;case "C":num_c = num_c + 1;break;case "D":num_d = num_d + 1;break;}}System.out.println("A-" + num_a + "-------" + NumberUtil.div(num_a, testCount, 2) * 100 + "%");System.out.println("B-" + num_b + "-------" + NumberUtil.div(num_b, testCount, 2) * 100 + "%");System.out.println("C-" + num_c + "-------" + NumberUtil.div(num_c, testCount, 2) * 100 + "%");System.out.println("D-" + num_d + "-------" + NumberUtil.div(num_d, testCount, 2) * 100 + "%");}}

测试结果:
A-195-------20.0%
B-805-------81.0%
C-0-------0.0%
如果测试基数越大,则越准确

当权重的参数比较多,那么建议使用hutool封装的

使用hutool返回权重值 原创

http://www.ds6.com.cn/news/9406.html

相关文章:

  • 海南省住房与城乡建设厅网站可查上海最新发布最新
  • 中文做网站百度搜题
  • 镇江网站建设网站制作公司欧美网站建设
  • 泰安房产信息网官网关键字优化用什么系统
  • 找网站做网站如何进行seo
  • 用网站模板 侵权 做了修改站长申论
  • 许昌做网站公司哪家专业百度2022最新版本
  • 河北廊坊seo网站建设网站优化哈尔滨优化网站公司
  • 新网站做优化要准备什么windows优化大师好用吗
  • 广西桂林农业学校推广关键词优化公司
  • 校园网站建设必要性微信朋友圈广告
  • 用自己的计算机做服务器建网站品牌策略怎么写
  • 个人网站 域名选择360优化大师下载官网
  • tk网站免费域名检测查询
  • 鹰潭网站商城建设贵州百度seo整站优化
  • 专业网站建设最便宜网络营销推广的总结
  • 连云港做网站哪家好临沂seo整站优化厂家
  • 汇编语言做网站海外推广专员
  • 深圳 三人 网站建设推广资源网
  • 做网站怎么备份数据如何申请百度竞价排名
  • 启迪网站开发开电商需要多少钱
  • 免费建站论坛百度关键词优化工具
  • seo提高网站排名网络推广的好处
  • 网站建设公司i公众号seo排名优化
  • 聊城住房和城乡建设厅网站网站优化主要优化哪些地方
  • 如何做公众号小说网站赚钱ui设计培训班哪家好
  • 网站建设怎么做网站产品推广方式都有哪些
  • 商城网站的psd模板免费下载优帮云排名优化
  • 做网站需要多少钱 做网页制作代码
  • 苏州市网站优化女生学网络营销这个专业好吗