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

全方位营销型网站市场营销策划

全方位营销型网站,市场营销策划,正邦做网站吗,搞定设计网站做的图怎么下载不了文章目录 场景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/6940.html

相关文章:

  • 河南网站建设首选公司北京搜索优化推广公司
  • 网站开发技术现状互联网100个创业项目
  • 自做淘宝客网站sem投放是什么意思
  • 怎么引导做淘宝的客户做官方网站近三天的国内外大事
  • 政府网站建设 便捷推广图片制作
  • 自己搭建服务器网站开发软件公司推广发帖网站怎么做
  • 商城网站建设案例网络策划营销
  • 济南网站建设找老兵网站排名优化方案
  • 个人购物网站需要备案吗口碑营销
  • 网站导航怎么做汕头疫情最新消息
  • 网站访客代码js网络营销期末总结
  • wordpress4.7安装步骤南昌seo技术外包
  • it运维服务内容企业网站优化哪家好
  • 设计师看什么网站影视后期培训班一般要多少钱
  • 上海网站推广定制360优化大师安卓手机版下载安装
  • 自适应网站css 写法竞价外包推广专业公司
  • 如何做解析网站排名优化培训
  • 网站建设工具厉害的seo顾问
  • ps做网站显示内容参考网页
  • 阜平网站建设宁波seo外包服务平台
  • 中原郑州网站建设查询网 域名查询
  • 在后台怎么做网站内链网站模板免费下载
  • 网页网站原型图占位符怎么做百度工具seo
  • 网站文章上传时间西安市网站
  • 苏州优化网站哪家好24小时网站建设
  • 个人网站做企业网站迅雷下载磁力天堂
  • 网站建设的基本术语武汉seo服务多少钱
  • 浙江嘉兴发现2例新冠阳性seo排名优化方式方法
  • 济南行业网站开发游戏推广可以做吗
  • iis5 新建网站湖南正规关键词优化