java - 订购 2 个相关阵列

标签 java android algorithm

我有 2 个 String[] 数组。

第一个是itemArray,它包含产品名称。 第二个是 priceArray,它包含每个项目的价格。

itemArray[0] 与 priceArray[0] 相关 itemArray[1] 与 priceArray[1] 相关

我需要根据价格对数组进行排序。

使用下面的代码将对价格数组进行排序

List<Float> pricefloatArrayTo Order = new ArrayList<Float>();
for (String s : priceArray) {                        
                        pricefloatArrayTo (Float.valueOf(s));  

                    }

                    Collections.sort(pricefloatArrayTo );

唯一的问题是,itemArray 现在需要根据 priceArray 进行排序,以便数组再次匹配。

谁能推荐一种方法,我可以使用它来根据 priceArray 对两个数组进行排序。提前致谢

最佳答案

如何不将元素分隔在两个数组中,而是创建一个包含价格和项目的新类。你可以让他们让这个类实现 Comparable您可以使用该接口(interface)按价格对包含此新类的数组进行排序。

例如:

public class Item implements Comparable<Item> {
  public String name;
  public BigDecimal price;

  @Override
  public int compareTo( Item o ) {
    return price.compareTo( o.price );
  }
}

(为了清楚起见,我删除了正常的 get/set 封装和 null 检查)

然后您可以获得此类的数组(或列表),然后您可以对其进行排序。

关于java - 订购 2 个相关阵列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6690756/

相关文章:

algorithm - 如何找到文本中的相似性

java - 检查 URL 相等性的正确方法

Android ProgressDialog 无法添加取消按钮

android - ConstraintLayout layout_constraintDimensionRatio 不起作用

sql - BOM匹配算法

java - 如何删除数组中的 "null"个元素?

java - volatile 原子整数不起作用

java - 设置在生产中与在开发中具有不同值(value)的标志的一般做法是什么

JavaFx如何打印文本(仅)收据?

android - 无法在 Android 8 中禁用通知振动