小编ms8*_*813的帖子

关闭JFreeChart条形图中的空白区域

我正在使用JFreeChart并希望显示球员得分的条形图,其中y轴上的得分和x轴上的球员比赛分组.

例如

String[] {Player name, score, game number}
Player 1, 10 , 1
Player 1, 12 , 2
Player 1, 15 , 3
Player 2, 11 , 1
Player 3, 18 , 1
Run Code Online (Sandbox Code Playgroud)

因为玩家不必玩相同数量的游戏,所以当创建数据集时会导致大量空白,因为它试图为玩家2和3游戏2和3绘制一个条形图.

data.addValue(score, game number, player name);
Run Code Online (Sandbox Code Playgroud)

输出:(数字不匹配,这只是我敲了一个快速测试) 注意玩家1游戏3和玩家3游戏1和2中的空白区域

任何人都可以帮我解决这个空白区域的问题吗?从理论上讲,玩家1可以继续玩2场比赛,玩家2和3只玩少数游戏,所以看起来很荒谬!我是JFreeChart的新手,所以可能有一个明显的解决方案!

预先感谢您的帮助.

java jfreechart bar-chart

6
推荐指数
1
解决办法
5561
查看次数

Java - 返回指定泛型类型的列表

我有一个包含各种子类型的对象列表:

List<Dog> dogList = new ArrayList<>();
dogList.add(new Poodle())
dogList.add(new Dalmation());
Run Code Online (Sandbox Code Playgroud)

我想搜索此列表并返回指定类的所有实例:

public <T extends Dog> List<T> getAll(Class<T> dogType){
    List<T> returnObjects = new ArrayList<>();
    for(T obj : dogList){
        if(dogType.instanceOf(obj){
            returnObjects.add(dogType.cast(obj));
        }
    }
    return returnObjects; 
}
Run Code Online (Sandbox Code Playgroud)

用法:

List<Poodle> poodleList = getAll(Poodle.class); 
Run Code Online (Sandbox Code Playgroud)

这是我对仿制药的第一次正确尝试,事情感觉他们有点失控.这是一种体面的做事方式,还是我错过了一个更简单/明显的解决方案?

编辑:更新为使用instanceOf()和cast()以避免未经检查的强制转换

java generics java-8

4
推荐指数
1
解决办法
868
查看次数

包装时间通用功能

我正在编写一些代码来生成程序映射.有些步骤比其他步骤花费的时间长得多,我正在计算构建的每个部分以查看瓶颈的位置,并让用户知道程序没有停滞在它们上面.

目前我有很多看起来像这样的代码:

Console.Write("Creating tiles");
var watch = System.Diagnostics.Stopwatch.StartNew();
CreateTiles();    //key mapgen function
watch.Stop();
Console.WriteLine("... finished in: {0} s", watch.ElapsedMilliseconds/1000d);

Console.Write("Calculating tile elevations");
var watch = System.Diagnostics.Stopwatch.StartNew();
CalculateTileElevations();    //key mapgen function
watch.Stop();
Console.WriteLine("... finished in: {0} s", watch.ElapsedMilliseconds/1000d);
//etc
Run Code Online (Sandbox Code Playgroud)

我的问题是,有没有办法重构这个看起来像下面这样的东西:

ExecuteTimedFunction(CreateTiles(), "Creating tiles");
ExecuteTimedFunction(CalculateTileElevations(), "Calculating tile elevations");

void ExecuteTimedFunction(Func genericFunction, String logMsg)
{
    Console.Write(logMsg);
    var watch = System.Diagnostics.Stopwatch.StartNew();
    genericFunction();    
    watch.Stop();
    Console.WriteLine("... finished in: {0} s", watch.ElapsedMilliseconds/1000d);
}
Run Code Online (Sandbox Code Playgroud)

警告:所有函数的返回类型都是void因为它们都操作了一个主列表的tile,但并非所有函数都具有相同数量的输入参数(尽管大多数都有0个参数,因此该案例的解决方案仍然是有用)

c# time wrapper

0
推荐指数
1
解决办法
120
查看次数

标签 统计

java ×2

bar-chart ×1

c# ×1

generics ×1

java-8 ×1

jfreechart ×1

time ×1

wrapper ×1