Reputation: 31
What I have written so far works from my current knowledge of basic arrays, but I just don't understand how to use an arraylist, or how to read from a file. What I have written so far works. Any links or advice to help fix my code to read from a file and use an arraylist would be greatly appreciated. Thank you.
public class TestPackages
{
public static void main (String[] args)
{
Packages testPackages = new Packages();
testPackages.addPacket(1001, 7.37, "CA");
testPackages.addPacket(1002, 5.17, "CT");
testPackages.addPacket(1003, 11.35, "NY");
testPackages.addPacket(1004, 20.17, "MA" );
testPackages.addPacket(1005, 9.99, "FL");
testPackages.addPacket(1006, 14.91, "VT");
testPackages.addPacket(1007, 4.97, "TX");
System.out.println(testPackages);
}
}
-------------------------------------------------------------------------------------------
-------------------------------------------------------------------------------------------
import java.util.Scanner;
import java.io.*;
import java.util.ArrayList;
public class Packages
{
private Packet[] shipment;
private int count;
private double totalWeight;
public Packages()
{
shipment = new Packet[100];
count = 0;
totalWeight = 0.0;
}
public void addPacket (int idNumber, double weight, String state)
{
if(count == shipment.length)
increaseSize();
shipment[count] = new Packet (idNumber, weight, state);
totalWeight += weight;
count++;
}
public String toString()
{
String report;
report = "All Packets\n";
for(int num = 0; num < count; num++)
report += shipment[num].toString() + "\n";
report += "Total Weight:\t" +totalWeight+" pounds";
return report;
}
private void increaseSize()
{
Packet[] temp = new Packet[shipment.length * 2];
for (int num = 0; num < shipment.length; num++)
temp[num] = shipment[num];
shipment = temp;
}
}
-------------------------------------------------------------------------------------------
-------------------------------------------------------------------------------------------
public class Packet
{
private int idNumber;
private double weight;
private String state;
public Packet(int idNumber, double weight, String state)
{
this.idNumber = idNumber;
this.weight = weight;
this.state = state;
}
public boolean isHeavy(double weight)
{
return (weight > 10);
}
public boolean isLight(double weight)
{
return (weight < 7);
}
public String toString()
{
String description = "ID number: " + idNumber + "\tWegiht: " + weight + "\tState: "
+ state;
return description;
}
}
Upvotes: 3
Views: 1457
Reputation: 1518
There are many ways to read a file line by line in java. But I prefer using commons-io utils. It's a very useful tool that provide reading from a file. Here is a one line example.
List<String> lines = FileUtils.readLines(new File(fileName));
Upvotes: 1
Reputation: 979
Try this link to learn how to read from file with JAVA
How to read a large text file line by line using Java?
You can try the following code to learn how to use Arraylist (There are many more tutorials in the web)
Packet p1=new Packet (1001, 7.37, "CA");
Packet p2=new Packet (1002, 17.5, "SF");
Packet p3=new Packet (1003, 13.8, "DF");
Packet p4=new Packet (1004, 14.4, "XC");
ArrayList<Packet> arr= new ArrayList<Packet>();
arr.add(p1);
arr.add(p2);
arr.add(p3);
arr.add(1,p4);
System.out.println("return the 2st element- " + arr.get(1) );
System.out.println("return the 4rd element- " + arr.get(3) );
System.out.println("Size of ArrayList after insertion- " + arr.size());
System.out.println("Elements of ArrayList after insertion- " + arr);
arr.remove(p2);
arr.remove(2);
System.out.println("Size of ArrayList after deletion- " + arr.size());
System.out.println("Elements of ArrayList after deletion- " + arr);
Upvotes: 1