Java中的列表-向其键添加值(HashMap或HashSet或其他)

Java中的列表-向其键添加值(HashMap或HashSet或其他),java,list,sorting,javafx,linechart,Java,List,Sorting,Javafx,Linechart,我想在JavaFX中对线条图X轴进行排序。我有DatePicker的日期(X轴)和它们的值(Y轴),但例如有四个完全相同的日期和不同的值。我想做的是,我需要检查日期是否存在,如果存在,我想将该值添加到该日期。对不起,我的英语不好 看看我的折线图 第一个日期有三个值。我想添加它们 这是我的密码: void initLineChart() { //defining a series XYChart.Series<String,Number> series = new

我想在JavaFX中对线条图X轴进行排序。我有DatePicker的日期(X轴)和它们的值(Y轴),但例如有四个完全相同的日期和不同的值。我想做的是,我需要检查日期是否存在,如果存在,我想将该值添加到该日期。对不起,我的英语不好

看看我的折线图

第一个日期有三个值。我想添加它们

这是我的密码:

void initLineChart()
{

    //defining a series
    XYChart.Series<String,Number> series = new XYChart.Series<String, Number>();
    lineChart.setAxisSortingPolicy(LineChart.SortingPolicy.X_AXIS);

    String date = new String();
    int numb;
    String value = new String();;



    ShowDreamHistoryController.save();
    ShowDreamHistoryController.loadDreamAtStart();

    for (int i = 0; i < ShowDreamHistoryController.listDreams.size(); i++) {

        date = ShowDreamHistoryController.listDreams.get(i).getDate().toString();


        value = ShowDreamHistoryController.listDreams.get(i).getHours();


        if(value != null)
        {
        numb = Integer.valueOf(value);
        series.getData().add(new XYChart.Data<String,Number>(date, numb));
        }
    }//for

      //  System.out.println(datesOnes);
    lineChart.getData().add(series);
}
void initLineChart()
{
//定义系列
XYChart.Series系列=新的XYChart.Series();
lineChart.setAxisSortingPolicy(lineChart.SortingPolicy.X_轴);
字符串日期=新字符串();
智力麻木;
字符串值=新字符串();;
ShowDreamHistoryController.save();
ShowDreamHistoryController.loadDreamAtStart();
对于(int i=0;i
检查日期是否存在于
系列中,如果存在,请删除该索引并添加到该索引中

        int indexExist = existAt(series,date);

        if(indexExist < 0){   // if the date does not exist
            series.getData().add(new XYChart.Data<String, Number>(date, numb));
        } else { //if the date exists
            int curVal = series.getData().get(indexExist).getYValue().intValue();
            //get the current value stored in that date
            series.getData().remove(indexExist);
            // remove the index
            series.getData().add(indexExist, new XYChart.Data<String,Number>(date, curVal + value));
            // add to that index ( current value + value )
        }
int indexExist=existAt(系列,日期);
如果(indexExist<0){//如果日期不存在
series.getData().add(新的XYChart.Data(日期,numb));
}else{//如果日期存在
int curVal=series.getData().get(indexExist.getYValue().intValue();
//获取存储在该日期中的当前值
series.getData().remove(indexExist);
//删除索引
series.getData().add(indexExist,new XYChart.Data(date,curVal+value));
//添加到该索引(当前值+值)
}
然后我们将有一个查找索引的函数

/*
    Loop through "SERIES" and return the position of the string
    -1 if it doesn't exist.
*/
public int existAt(XYChart.Series <String, Number> series, String date){
    for(int i=0; i<series.getData().size(); i++){
        if(series.getData().get(i).getXValue().equals(date)){
            return i;
        }
    }
    return -1;
}
/*
循环“序列”并返回字符串的位置
-1如果它不存在。
*/
public int existAt(XYChart.Series系列,字符串日期){

对于(int i=0;i)您想按日期对x轴上的元素进行排序吗?我注意到它们的顺序不正确。是的,我想这样做。