java– 按第二维排序2d数组

java– 按第二维排序2d数组,第1张

概述我需要根据价格对商品进行分类.每个项目的价格都存储在JSON数组中我创建了一个二维数组来存储名称和价格像这样……String[][]priceArray=newString[itemArray.length()][2];for(inti=0;i<itemArray.length();i++){//puttheitemname

我需要根据价格对商品进行分类.

每个项目的价格都存储在JSON数组中

我创建了一个二维数组来存储名称和价格

像这样……

    String [][] priceArray = new String [itemArray.length()] [2];    for(int i = 0; i < itemArray.length(); i++)    {        //put the item name in the first dimension        priceArray[i][0] = itemArray.getJsONObject(i).getString("name");        //put the item price in the second dimension                priceArray[i][1] = itemArray.getJsONObject(i).getString("baseprice");           }    //DEBUG TO SEE THE RESulTS    for(int i = 0; i < priceArray.length; i++)    {        Log.i("Item name : Item Price", priceArray[i][0] + " : " + priceArray[i][1]);                   }

这工作正常…但我怎么能按第二维的价格对数组进行排序

这甚至是最好的方法吗?

解决方法:

更好的方法:利用OO编程,首先,创建一个包含名称和价格的类Item:

class Item {    String name;    BigDecimal price;    public String toString() { return "ITEM: {name:" + name + ", price: " + price + "}" }}

然后创建一个Items列表而不是一个2D数组:

List<Item> items = new ArrayList<Item>();for(int i = 0; i < itemArray.length(); i++){    Item item = new Item();    item.name = itemArray.getJsONObject(i).getString("name");    item.price = new BigDecimal(itemArray.getJsONObject(i).getString("baseprice"));    items.add(item);}

最后,如果您需要,可以按名称订购:

// Sort by nameCollections.sort(items, new Comparator<Item>() {    @OverrIDe    public int compare(Item o1, Item o2) {        return o1.name.compareto(o2.name);    }});// at this point, items will be ordered by name

或者如果您想按价格订购:

// Sort by priceCollections.sort(items, new Comparator<Item>() {    @OverrIDe    public int compare(Item o1, Item o2) {        return o1.price.compareto(o2.price);    }});// at this point, items will be ordered by price

当然,我错过了一些小问题,比如使用getter和setter而不是直接访问Item的字段,但目的是展示这个想法.

总结

以上是内存溢出为你收集整理的java – 按第二维排序2d数组全部内容,希望文章能够帮你解决java – 按第二维排序2d数组所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1119004.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-29
下一篇 2022-05-29

发表评论

登录后才能评论

评论列表(0条)

保存