有如下数据
产品编号           产品名称             价格           销售量
001                 索爱 K750           1200              10
002                诺基亚5200           4500              0
003                摩托罗拉  X3         1700              15
004                多普达   T4          3000               7
问题:
1,把以上数据存入到List中去
2,价格由多到小进行排序
3,把销售量为0的数据删除

解决方案 »

  1.   

    一般来说,是建一个类,比如叫MobilePhone,类里面有产品编号、产品名称、价格、销售量,实现Comparable接口,覆盖compareTo()方法,里面用价格确定返回值,排序的时候用Collections.sort()方法就行了,至于删除销售量为0的,遍历判断就行了,不过注意是从后往前遍历来删除,不然可能会有误
      

  2.   

    import java.util.*;
    public class Phone { public static void main(String[] args) {
    LinkedList<phoneList> list = new LinkedList<phoneList>();
    phoneList p1 = new phoneList("001" ,"索爱 K750", 1200, 10);
    phoneList p2 = new phoneList("002" ,"诺基亚5200", 4500, 0);
    phoneList p3 = new phoneList("003" ,"摩托罗拉 X3", 1700, 15);
    phoneList p4 = new phoneList("004" ,"多普达 T4", 3000, 7);

    list.add(p1);
    list.add(p2);
    list.add(p3);
    list.add(p4);
    Collections.sort(list);
    for(phoneList p:list){
    System.out.println(p);
    }
    System.out.println();
    deleteSale(list);
    for(phoneList p:list){
    System.out.println(p);
    }
    }
    public static void deleteSale(LinkedList<phoneList> a){
    ListIterator<phoneList> iter = a.listIterator();
    while(iter.hasNext()){
    phoneList p = iter.next();
    if(p.getSale() == 0){
    iter.remove();
    }
    }
    }
    }class phoneList implements Comparable<phoneList>{
    public phoneList(String number,String name,double value,int sale){
    this.number = number;
    this.name = name;
    this.value = value;
    this.sale = sale;
    }
    public double getSale(){
    return sale;
    }
    @Override
    public String toString(){
    return number+"  "+name+"  "+value+"  "+sale; 
    }
    private String number;
    private String name;
    private double value;
    private int sale;
    @Override
    public int compareTo(phoneList p) {
    if(value < p.value) return 1;
    if(value > p.value) return -1;
    return 0;
    }
    }
      

  3.   


    public class MobilePhone implements Comparable<MobilePhone> {
    private String id;
    private String name;
    private double price;
    private long sales;

    public String getId() {
    return id;
    }

    public void setId(String id) {
    this.id = id;
    }

    public String getName() {
    return name;
    }

    public void setName(String name) {
    this.name = name;
    }

    public double getPrice() {
    return price;
    }

    public void setPrice(double price) {
    this.price = price;
    }

    public long getSales() {
    return sales;
    }

    public void setSales(long sales) {
    this.sales = sales;
    }

    public MobilePhone() {

    }

    public MobilePhone(String id, String name, double price, long sales) {
    this.id = id;
    this.name = name;
    this.price = price;
    this.sales = sales;
    } public int compareTo(MobilePhone mobilePhone) {
    return (sales < mobilePhone.sales) ? 1 : (sales > mobilePhone.sales) ? -1 : 0;
    }

    @Override
    public String toString() {
    return "产品编号:" + id + ", 产品名称:" + name + ", 价格:" + price + ", 销售量:" + sales;
    }
    }import java.util.List;
    import java.util.ArrayList;
    import java.util.Collections;public class MobilePhoneTest {
    public static void main(String[] args) {
    List<MobilePhone> mobilePhones = new ArrayList<MobilePhone>();
    mobilePhones.add(new MobilePhone("001", "索爱 K750", 1200, 10));
    mobilePhones.add(new MobilePhone("002", "诺基亚5200", 4500, 0));
    mobilePhones.add(new MobilePhone("003", "摩托罗拉 X3", 1700, 15));
    mobilePhones.add(new MobilePhone("004", "多普达 T4", 3000, 7));
    printList(mobilePhones);
    Collections.sort(mobilePhones);
    printList(mobilePhones);
    for (int i = mobilePhones.size() - 1; i >= 0; i--) {
    MobilePhone mobilePhone = mobilePhones.get(i);
    if (mobilePhone.getSales() == 0) {
    mobilePhones.remove(mobilePhone);
    }
    }
    printList(mobilePhones);
    }

    public static void printList(List<MobilePhone> mobilePhones) {
    for (int i = 0; i < mobilePhones.size(); i++) {
    System.out.println(mobilePhones.get(i));
    }
    System.out.println();
    }
    }
    这种题目面试的时候是要用记事本随便写写调一下就出来的,纯属检验熟练度问题,能够做到就达到代码工的基本要求,虽然做项目的时候没谁会用记事本写,楼主继续努力
      

  4.   


    public class MobilePhone implements Comparable<MobilePhone> {
    private String id;
    private String name;
    private double price;
    private long sales;

    public String getId() {
    return id;
    }

    public void setId(String id) {
    this.id = id;
    }

    public String getName() {
    return name;
    }

    public void setName(String name) {
    this.name = name;
    }

    public double getPrice() {
    return price;
    }

    public void setPrice(double price) {
    this.price = price;
    }

    public long getSales() {
    return sales;
    }

    public void setSales(long sales) {
    this.sales = sales;
    }

    public MobilePhone() {

    }

    public MobilePhone(String id, String name, double price, long sales) {
    this.id = id;
    this.name = name;
    this.price = price;
    this.sales = sales;
    } public int compareTo(MobilePhone mobilePhone) {
    return (price < mobilePhone.price) ? 1 : (price > mobilePhone.price) ? -1 : 0;
    }

    @Override
    public String toString() {
    return "产品编号:" + id + ", 产品名称:" + name + ", 价格:" + price + ", 销售量:" + sales;
    }
    }
    弄成了按销售量排序,错了,不好意思,改一改MobilePhone类