当前位置: 首页 > 知识库问答 >
问题:

Java数据处理

凌恩
2023-03-14

我遇到了一些数据,我想用许多不同的方式对它进行排序,例如按购买最多的最便宜的产品进行排序。我想一行一行地对文档进行分组,因为每行包含另一个“项目”。我附上了一张图片供参考。我更喜欢使用Java,但如果有必要,我会学习R。我是否手动将每行编码为数组?有400个项目,如果这是唯一的方法,我可以将其分成几天。

样品

共有2个答案

壤驷宏才
2023-03-14

另一种方法是创建一个名为fruit的类,并在该类中创建比较器。例如:

import java.awt.*;
import java.util.Comparator;
public class Fruit{

    public static Comparator<Fruit> compareWeights = Comparator.comparingInt((Fruit fruit) -> fruit.weight);
    public static Comparator<Fruit> compareColors = Comparator.comparingInt((Fruit fruit) -> fruit.color.getRGB());

    private final String fruitName;
    private final int weight;
    private final Color color;

    Fruit(String fruitName, Color color, int weight){
        this.fruitName = fruitName;
        this.weight = weight;
        this.color = color;

    }

    @Override
    public String toString(){
        return fruitName + ", " + color.toString() + ", " + weight + " pound.";
    }
}

然后你创建水果并用定制的比较器对它们进行排序

    Fruit firstFruit = new Fruit("Banana", Color.YELLOW, 1);
    Fruit secondFruit = new Fruit("Cola apple", Color.RED, 7);

    ArrayList<Fruit> data = new ArrayList<>();
    data.add(secondFruit);
    data.add(firstFruit);

    data.sort(Fruit.compareColors);

    System.out.println(data);
鄢晔
2023-03-14

您可以将数据存储在数组中,然后使用自定义比较器对其进行排序。例如:

public static void main(String[] args){
    ArrayList<String[]> data = new ArrayList<>();
    String[] firstFruit = new String[]{"Banana", "Yellow", "7 pound"};
    String[] secondFruit = new String[]{"Cola Apple", "Red", "1 pound"};

    data.add(firstFruit);
    data.add(secondFruit);
    System.out.println("Unsorted Array");
    print(data);

    Comparator<String[]> compareWeights= Comparator.comparingInt((String[] item) -> Integer.parseInt(item[2].split(" ")[0]));

    data.sort(compareWeights);
    System.out.println("Sorted Array");
    print(data);
}

static void print(ArrayList<String[]> data){
    System.out.println("-----------------");
    for (String[] str:data) {
        System.out.println(Arrays.toString(str));
    }
    System.out.println("-----------------");
}

在这里,你是根据重量排序的,如果你想以其他方式排序,那么你必须创建另一个比较器。

该代码的输出为:

Unsorted Array
-----------------
[Banana, Yellow, 7 pound]
[Cola Apple, Red, 1 pound]
-----------------
Sorted Array
-----------------
[Cola Apple, Red, 1 pound]
[Banana, Yellow, 7 pound]
-----------------
 类似资料:
  • 问题内容: 我有一个Java应用程序,它需要显示大量数据(大约一百万个数据点)。数据并不需要全部同时显示,而仅在用户请求时才显示。该应用程序是桌面应用程序,未与应用程序服务器一起运行或未与任何集中式数据库连接。 我的想法是在计算机上运行数据库并在其中加载数据。在大多数时候,数据库都是只读的,因此我应该能够建立索引以帮助优化查询。如果我在本地系统上运行,则不确定是否应该尝试实现一些缓存(我不确定查询

  • 数据处理 可将字段的值进行处理得到最终结果 html标签过滤 内容替换 批量替换 关键词过滤 条件判断 截取字符串 翻译 工具箱 将文本链接标记为图片链接:如果字段的值是完整的url链接(非<img>标签内的链接),可将链接识别为图片 使用函数 调用接口

  • 本文向大家介绍java+jquery处理xml数据的方法,包括了java+jquery处理xml数据的方法的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了java+jquery处理xml数据的方法。分享给大家供大家参考。具体实现方法如下: 1. AjaxJqueryXml.js如下: 2. AjaxXmlServlet.java如下: 3. 前台html页面 这里请自己添加jquery库文

  • 我有一个简单的问题。我目前正在使用Netty处理来自客户端的TCP和UDP数据包。我有一个单独的线程上的每个套接字侦听器,它工作得很好。 我现在担心的是,当流量开始严重冲击它时,我不认为每个处理程序只有一个线程来管理消息就足够了。为每条消息生成一个新线程是否正确(我觉得不正确)?或者我应该使用像线程池这样的东西来实现这一点?如有任何建议,将不胜感激。 下面是消息处理程序的一些示例代码。我编写了一些

  • Data Preparation You must pre-process your raw data before you model your problem. The specific preparation may depend on the data that you have available and the machine learning algorithms you want

  • 在输入的JSON数据中,v的值越高,粒子越亮,并且它们从出发国家到目的国家的运行越快。 (请查阅Michael Chang的文章来 了解他是如何提出这个想法的)。Gio.js库会自动缩放输入数据的范围以便于更好的数据可视化。作为开发人员,您还可以定义自己的预处理数据的方式。