2darray
2darray

Reputation: 1

Java 2D array problem

I want to assign some value in a 2D array.

I have 2 attributes called product and price.

iPad 999.9
iPod 123.4
iPhone 432.1

In 1-D array, I know how to assign the product value.

   String[] product = {"iPad", "iPod", "iPhone"};

However, in 2D array, if I assign like this:

String[][] array = new String[3][1];
array[0][1] = "iPad";

How can I assign the float number into the array?

Also, I have a question for sorting.

Since I declare the type of 2D array as String.

Can I sort the float price using this array?

Or I need to declare another array to do the sorting? Thank

Upvotes: 0

Views: 2516

Answers (1)

Nikita Rybak
Nikita Rybak

Reputation: 67986

You will save yourself lots of trouble, if you use objects instead of arrays to store products. E.g.,

class Product {
    String name;
    double price;
}

(add access modifiers, setters/getters and constructors if necessary)

Now you can access array of products easily without type conversions.

Product[] array = new Product[3];
array[0] = new Product();
array[0].name = "iPad";
array[0].price = 123.4;

Or, if you add constructor,

    Product[] array = {
        new Product("iPad", 123.4),
        new Product("iPod", 234.5),
        new Product("iPhone", 345.6)
    };

To allow sorting, you can implement Comparable interface and then call Arrays.sort(myProductArray):

class Product implements Comparable<Product> {
    String name;
    double price;

    public int compareTo(Product p) {
        return ((Double) price).compareTo(p.price);
    }
}

Upvotes: 8

Related Questions