Java错误和语法教程
我在寻求自助方面的帮助,这是一种矛盾修饰法。我如何通过解决更多我自己的问题来减少对你们这些好人的困扰 我在Java编程的最后一周,学习Java遇到了巨大的障碍。我读了所有的书,但我总是为一些小问题而烦恼。这就像试图建立一个纸牌屋。我只知道这本书所展示的部分语法和用法。当我把东西组合起来时,我会遇到可怕的障碍。我花了好几个小时的时间修补它们。sun文档只显示了似乎没有帮助的基本用途 以下是我想要的: 当我尝试一些东西时,它的工作方式与下面对数组列表的操作不同,我想找到一个地方或程序,它可以显示示例代码,例如向arrayList添加额外的类实例。我在哪里可以简明扼要地了解这一点,而不必为每一个语法错误问一个或两个问题?Google for Java在哪里?是否有一个程序可以接受您的错误并向您展示如何修复它们(或提供建议) 如果有人有兴趣帮我看这个课程,下面是我的代码:Java错误和语法教程,java,arraylist,compiler-errors,Java,Arraylist,Compiler Errors,我在寻求自助方面的帮助,这是一种矛盾修饰法。我如何通过解决更多我自己的问题来减少对你们这些好人的困扰 我在Java编程的最后一周,学习Java遇到了巨大的障碍。我读了所有的书,但我总是为一些小问题而烦恼。这就像试图建立一个纸牌屋。我只知道这本书所展示的部分语法和用法。当我把东西组合起来时,我会遇到可怕的障碍。我花了好几个小时的时间修补它们。sun文档只显示了似乎没有帮助的基本用途 以下是我想要的: 当我尝试一些东西时,它的工作方式与下面对数组列表的操作不同,我想找到一个地方或程序,它可以显示示例
//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
}