有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java Arraylist可打印具有计数的对象

这是我的密码

ArrayList<Restaurant> restaurant= new ArrayList<Restaurant>(); 

在餐厅内上课

@Override
public String toString() {
    int i=1;
    return "\n"+(i++)+". "+this.restaurantName + 
           "\t\t"+this.location;
}

我想这样印刷

[ 1. pizzahut bangalore, 2. dominos delhi]

而是打印

[ 1. pizzahut bangalore, 1. dominos delhi]

需要代码方面的帮助


共 (2) 个答案

  1. # 1 楼答案

    ArrayList<Restaurant> restaurantList= new ArrayList<Restaurant>(); 
    
    // your login to insert the elements in the array list 
    
    // iterate list
    int index=1;
    for(Restaurant r : restaurantList){
        System.out.println(String.valueOf(index++)+": "+ r);
    }
    

    在餐厅内上课

    @Override
    public String toString() {
        return this.restaurantName + "\t\t"+this.location;
    }
    
  2. # 2 楼答案

    这是另一个解决方案,我不确定您有什么实际问题,所以请提供另一个可能的解决方案。这可能对你有用

    public class Restaurant {
    
        static int index = 1;
        String restaurantName;
        String location;
        int curIndex;
    
        Restaurant(final String restaurantName, final String location) {
            this.restaurantName = restaurantName;
            this.location = location;
            this.curIndex = index++;
        }
    
        public static void main(final String[] input) {
            final ArrayList<Restaurant> restaurant = new ArrayList<Restaurant>();
            restaurant.add(new Restaurant("pizzahut", "bangalore"));
            restaurant.add(new Restaurant("dominos", "delhi"));
    
            restaurant.forEach(r -> System.out.println(r));
        }
    
        public String toString() {
            return "\n" + curIndex + ". " + this.restaurantName +
                    "\t\t" + this.location;
        }
    }