Java错误和语法教程

Java错误和语法教程,java,arraylist,compiler-errors,Java,Arraylist,Compiler Errors,我在寻求自助方面的帮助,这是一种矛盾修饰法。我如何通过解决更多我自己的问题来减少对你们这些好人的困扰 我在Java编程的最后一周,学习Java遇到了巨大的障碍。我读了所有的书,但我总是为一些小问题而烦恼。这就像试图建立一个纸牌屋。我只知道这本书所展示的部分语法和用法。当我把东西组合起来时,我会遇到可怕的障碍。我花了好几个小时的时间修补它们。sun文档只显示了似乎没有帮助的基本用途 以下是我想要的: 当我尝试一些东西时,它的工作方式与下面对数组列表的操作不同,我想找到一个地方或程序,它可以显示示例

我在寻求自助方面的帮助,这是一种矛盾修饰法。我如何通过解决更多我自己的问题来减少对你们这些好人的困扰

我在Java编程的最后一周,学习Java遇到了巨大的障碍。我读了所有的书,但我总是为一些小问题而烦恼。这就像试图建立一个纸牌屋。我只知道这本书所展示的部分语法和用法。当我把东西组合起来时,我会遇到可怕的障碍。我花了好几个小时的时间修补它们。sun文档只显示了似乎没有帮助的基本用途

以下是我想要的:

当我尝试一些东西时,它的工作方式与下面对数组列表的操作不同,我想找到一个地方或程序,它可以显示示例代码,例如向arrayList添加额外的类实例。我在哪里可以简明扼要地了解这一点,而不必为每一个语法错误问一个或两个问题?Google for Java在哪里?是否有一个程序可以接受您的错误并向您展示如何修复它们(或提供建议)

如果有人有兴趣帮我看这个课程,下面是我的代码:

//Contruct inv and allow for methods add, get, size, sort, and value
import java.util.*;
import java.io.BufferedWriter;
import java.io.File;
import java.io.FileWriter;

public class Inventory
{// class Inventory
    private ArrayList<RatedDVD> dvdlist;// declare dvdlist as ArrayList of RatedDVD
    private int numDVDs;

    public Inventory()
    {// method Inventory
        dvdlist = new ArrayList<RatedDVD>();

    }// end method

    // add & get
    public RatedDVD get(int i){return dvdlist.get(i);}// method get

    public void add(DVD d){
    dvdlist = dvdlist d;
    sort();
    }// method add

    public double value()
    {// method value
        double total = 0.0;
        for (int i = 0; i < dvdlist.size(); i++) 
        {// for every pass thru dvdlist add total
        // [DEBUG] consider enhanced for
            total += get(i).feeValue();
        }
        return total;
    }// end method value

    public void sort()
    {// method sort
    // [DEBUG] consider optimization
    int n = dvdlist.size();
        for (int search = 1; search < n; search++) 
        {// for do the following and increment till dvdlist has been searched
            for (int i = 0; i < n-search; i++) 
            {// for step through comparison for entire dvdlist
                if (dvdlist.get(i).getName().compareToIgnoreCase(dvdlist.get(i+1).getName()) > 0) 
                {// if swap necessary then swap
                    RatedDVD temp = dvdlist.get(i);
                    dvdlist.set(i,dvdlist.get(i+1));
                    dvdlist.set(i+1,temp);
                }// end if swap
            }// end for compareto
        }// end outer for
    }// end method sort

    public int size(){return dvdlist.size();}// method size

    public void save() {
        save(true);
    }

    // save it to C:\data\inventory.dat
    public void save(boolean saveagain) {
        try {
            BufferedWriter w = new BufferedWriter(new FileWriter("c:\\data\\inventory.dat"));
            for (int i = 0; i < size(); i++) {
                RatedDVD dvd = get(i);
                w.write( dvd.getItem() + "\n");
                w.write( dvd.getName() + "\n");
                w.write( dvd.getRating() + "\n");
                w.write( dvd.getUnits() + "\n");
                w.write( dvd.getPrice() + "\n");
                w.write( dvd.value() + "\n");
                w.write( dvd.fee() + "\n");
                w.write( dvd.feeValue() + "\n");
                w.newLine();
            }
            // total value of it
            //w.write( value() + "\n");
            w.close();
        } catch (Exception ex) {
            if (saveagain) {
                new File("c:\\data\\").mkdir(); // make file if doesn't exist
                save(false); 
            }
        }
    }

    public int search(String name) {
        for (int i = 0; i < size(); i++) { // check if name string is equal
            if (get(i).getName().equalsIgnoreCase(name)) return i;
        }
        return -1; // we didn't find anything
    }

    // add a new dvd to the end, increasing the array size
    public void add(RatedDVD p) {
        RatedDVD[] temp = new RatedDVD[dvdlist.size()+1];
        for (int i = 0; i < dvdlist.size(); i++) {
            temp[i] = dvdlist[i];
        }
        temp[temp.length-1] = p; // add it at the end
        dvdlist = temp;
    }

    // remove a DVD from the array, and shrink the array size
    public void delete(RatedDVD p) {
        RatedDVD[] temp = new RatedDVD[dvdlist.size()-1];
        int adj = 0;
        for (int i = 0; i < dvdlist.size(); i++) {
            if (p != dvdlist[i]) {
                temp[i-adj] = dvdlist[i];
            }
            else adj = 1;
        }
        dvdlist = temp;
    }
    public int highestNumber() {
        int numb = 0;
        for (int i = 0; i < dvdlist.size(); i++) {
            if (get(i).getItem() > numb) {
                numb = get(i).getItem();
            }
        }
        return numb;
    }   
}// end class inventory
//构造inv并允许方法add、get、size、sort和value
导入java.util.*;
导入java.io.BufferedWriter;
导入java.io.File;
导入java.io.FileWriter;
公共类目录
{//class目录
private ArrayList dvdlist;//将dvdlist声明为RatedDVD的ArrayList
私有int numDVDs;
公共库存()
{//方法清单
dvdlist=newarraylist();
}//结束方法
//添加和获取
public ratedvd get(int i){return dvdlist.get(i);}//方法get
公共无效添加(DVD d){
dvdlist=dvdlistd;
排序();
}//方法添加
公共双值()
{//方法值
双倍合计=0.0;
对于(int i=0;i0)
{//如果需要交换,则交换
RatedDVD temp=dvdlist.get(i);
设置(i,dvdlist.get(i+1));
DVD列表设置(i+1,温度);
}//如果交换结束
}//结束比较
}//外端
}//结束方法排序
public int size(){return dvdlist.size();}//方法大小
公共作废保存(){
保存(真);
}
//将其保存到C:\data\inventory.dat
公共作废保存(布尔值再次保存){
试一试{
BufferedWriter w=新的BufferedWriter(新文件写入程序(“c:\\data\\inventory.dat”);
对于(int i=0;inumb){
numb=get(i).getItem();
}
}
回归麻木;
}   
}//末级存货

编译器错误似乎很能说明您做错了什么,但我可以理解为什么您可能会对如何正确操作感到困惑。您似乎误解了ArrayList的用途。如果查看,您将看到它有方法
add()
remove()
,它们执行您为其创建的
add()
delete()方法的操作。您试图将ArrayList视为原始数组。不要那样做;使用API提供的方法。这不仅会解决您的错误,而且会使您的代码对未来的程序员越来越清晰。

编译器错误似乎很能说明您的错误,但我可以理解为什么您可能会对
//Contruct inv and allow for methods add, get, size, sort, and value
import java.util.*;
import java.io.BufferedWriter;
import java.io.File;
import java.io.FileWriter;

public class Inventory
{// class Inventory
    private ArrayList<RatedDVD> dvdlist;// declare dvdlist as ArrayList of RatedDVD
    private int numDVDs;

    public Inventory()
    {// method Inventory
        dvdlist = new ArrayList<RatedDVD>();

    }// end method

    // add & get
    public RatedDVD get(int i){return dvdlist.get(i);}// method get

    public void add(DVD d){
    dvdlist = dvdlist d;
    sort();
    }// method add

    public double value()
    {// method value
        double total = 0.0;
        for (int i = 0; i < dvdlist.size(); i++) 
        {// for every pass thru dvdlist add total
        // [DEBUG] consider enhanced for
            total += get(i).feeValue();
        }
        return total;
    }// end method value

    public void sort()
    {// method sort
    // [DEBUG] consider optimization
    int n = dvdlist.size();
        for (int search = 1; search < n; search++) 
        {// for do the following and increment till dvdlist has been searched
            for (int i = 0; i < n-search; i++) 
            {// for step through comparison for entire dvdlist
                if (dvdlist.get(i).getName().compareToIgnoreCase(dvdlist.get(i+1).getName()) > 0) 
                {// if swap necessary then swap
                    RatedDVD temp = dvdlist.get(i);
                    dvdlist.set(i,dvdlist.get(i+1));
                    dvdlist.set(i+1,temp);
                }// end if swap
            }// end for compareto
        }// end outer for
    }// end method sort

    public int size(){return dvdlist.size();}// method size

    public void save() {
        save(true);
    }

    // save it to C:\data\inventory.dat
    public void save(boolean saveagain) {
        try {
            BufferedWriter w = new BufferedWriter(new FileWriter("c:\\data\\inventory.dat"));
            for (int i = 0; i < size(); i++) {
                RatedDVD dvd = get(i);
                w.write( dvd.getItem() + "\n");
                w.write( dvd.getName() + "\n");
                w.write( dvd.getRating() + "\n");
                w.write( dvd.getUnits() + "\n");
                w.write( dvd.getPrice() + "\n");
                w.write( dvd.value() + "\n");
                w.write( dvd.fee() + "\n");
                w.write( dvd.feeValue() + "\n");
                w.newLine();
            }
            // total value of it
            //w.write( value() + "\n");
            w.close();
        } catch (Exception ex) {
            if (saveagain) {
                new File("c:\\data\\").mkdir(); // make file if doesn't exist
                save(false); 
            }
        }
    }

    public int search(String name) {
        for (int i = 0; i < size(); i++) { // check if name string is equal
            if (get(i).getName().equalsIgnoreCase(name)) return i;
        }
        return -1; // we didn't find anything
    }

    // add a new dvd to the end, increasing the array size
    public void add(RatedDVD p) {
        RatedDVD[] temp = new RatedDVD[dvdlist.size()+1];
        for (int i = 0; i < dvdlist.size(); i++) {
            temp[i] = dvdlist[i];
        }
        temp[temp.length-1] = p; // add it at the end
        dvdlist = temp;
    }

    // remove a DVD from the array, and shrink the array size
    public void delete(RatedDVD p) {
        RatedDVD[] temp = new RatedDVD[dvdlist.size()-1];
        int adj = 0;
        for (int i = 0; i < dvdlist.size(); i++) {
            if (p != dvdlist[i]) {
                temp[i-adj] = dvdlist[i];
            }
            else adj = 1;
        }
        dvdlist = temp;
    }
    public int highestNumber() {
        int numb = 0;
        for (int i = 0; i < dvdlist.size(); i++) {
            if (get(i).getItem() > numb) {
                numb = get(i).getItem();
            }
        }
        return numb;
    }   
}// end class inventory
/tmp/jc_4083/Inventory.java:101: incompatible types
found   : RatedDVD[]
required: java.util.ArrayList
        dvdlist = temp;
private ArrayList<RatedDVD> dvdlist;// declare dvdlist as ArrayList of RatedDVD
// add a new dvd to the end, increasing the array size
public void add(RatedDVD p) {
    RatedDVD[] temp = new RatedDVD[dvdlist.size()+1];
    for (int i = 0; i < dvdlist.size(); i++) {
            temp[i] = dvdlist[i];
    }
    temp[temp.length-1] = p; // add it at the end
    dvdlist = temp;
}
for (Iterator iter = dvdlist.iterator(); iter.hasNext();) {
   RatedDVD ratedDVD = (RatedDVD) iter.next();
   //rest of the code block removed
}
for (RatedDVD ratedDVD : dvdlist) {
   // rest of the code here
}