14.1 ArrayList
ArrayList Creation
import java.util.ArrayList;
public class Main {
public static void main(String[] args) {
// Creating an ArrayList of Strings
ArrayList<String> list = new ArrayList<>();
// Adding elements
list.add("Apple");
list.add("Banana");
list.add("Cherry");
// Printing the ArrayList
System.out.println(list); // Output: [Apple, Banana, Cherry]
}
}2. ArrayList with Initial Capacity
ArrayList<Integer> numbers = new ArrayList<>(10);3. Iterating Over an ArrayList
for (int i = 0; i < list.size(); i++) {
System.out.println(list.get(i));
}4. Removing Elements
list.remove("Banana"); // Removes by value
list.remove(0); // Removes by index5. Checking if an Element Exists
if (list.contains("Apple")) {
System.out.println("Apple is in the list!");
}6. Clearing the ArrayList
list.clear(); // Removes all elements
14.1.2: ArrayLists with loops
import java.util.ArrayList;
import java.util.Scanner;
public class ArrayListAverage {
public static void main(String[] args) {
final int NUM_ELEMENTS = 8;
Scanner scnr = new Scanner(System.in);
ArrayList<Double> userNums = new ArrayList<Double>();
Double sumVal;
Double averageVal;
int i;
// Get user numbers and add to userNums
System.out.println("Enter " + NUM_ELEMENTS + " numbers...");
for (i = 0; i < NUM_ELEMENTS; ++i) {
System.out.print("Number " + (i + 1) + ": ");
userNums.add(scnr.nextDouble());
}
// Determine average value
sumVal = 0.0;
for (i = 0; i < userNums.size(); ++i) {
sumVal = sumVal + userNums.get(i); // Calculate total value
}
averageVal = sumVal / userNums.size(); // Calculate average
System.out.println("Average: " + averageVal);
}
} //can't us length for arraylist.length
import java.util.Scanner;
import java.util.ArrayList;
public class MakeWeightList {
public static void main(String[] args) {
Scanner scnr = new Scanner(System.in);
int numWeights;
int i;
ArrayList<Double> weightList = new ArrayList<Double>();
numWeights = scnr.nextInt();
for (i = 0; i < numWeights; ++i) {
weightList.add(scnr.nextDouble());
}
// Traversing a list using indexes
for (i = 0; i < weightList.size(); ++i) {
System.out.print(weightList.get(i) + " ");
}
System.out.println();
}
} //getting multiple inputs from the user14.2 Classes and ArrayList
import java.util.Scanner;
import java.util.ArrayList;
public class Licenses {
public static void main(String[] args) {
Scanner scnr = new Scanner(System.in);
ArrayList<License> licenseList = new ArrayList<License>();
License currLicense;
int entryNumber;
int i;
entryNumber = scnr.nextInt();
while (entryNumber != -99) {
currLicense = new License();
currLicense.readDetails(scnr); // Pass scanner to readDetails
licenseList.add(currLicense);
entryNumber = scnr.nextInt(); // Read the next entryNumber
}
for (i = 0; i < licenseList.size(); ++i) {
currLicense = licenseList.get(i);
currLicense.print();
}
}
}import java.util.Scanner;
public class License {
private String state;
private char group;
public void readDetails(Scanner scnr) {
state = scnr.next();
group = scnr.next().charAt(0);
}
public void print() {
System.out.println("License: " + state + ", Group: " + group);
}
}Input
1 AK B
2 CO A
3 CA D
4 AZ C
-99
Your output
License: AK, Group: B
License: CO, Group: A
License: CA, Group: D
License: AZ, Group: C
Example
import java.util.Scanner;
import java.util.ArrayList;
public class Directory {
private ArrayList<License> licenseList = new ArrayList<License>();
public void inputLicenses(Scanner scnr) {
License currLicense;
String currState;
int currFee;
int licenseCount;
int i;
licenseCount = scnr.nextInt();
for (i = 0; i < licenseCount; ++i) {
currState = scnr.next();
currFee = scnr.nextInt();
currLicense = new License();
currLicense.setStateAndFee(currState, currFee);
licenseList.add(currLicense);
}
}
public int findSmallestLicenseFee() {
// Initialize minValue with the first element's fee
int minValue = licenseList.get(0).getFee();
// Loop through the list to find the smallest fee
for (int i = 1; i < licenseList.size(); i++) {
if (licenseList.get(i).getFee() < minValue) {
minValue = licenseList.get(i).getFee();
}
}
return minValue;
}
}public class License {
private String state;
private int fee;
public void setStateAndFee(String newState, int newFee) {
state = newState;
fee = newFee;
}
public int getFee() {
return fee;
}
}import java.util.Scanner;
import java.util.ArrayList;
public class LicenseSystem {
public static void main(String[] args) {
Scanner scnr = new Scanner(System.in);
Directory directory = new Directory();
directory.inputLicenses(scnr);
System.out.println("Smallest license fee: " + directory.findSmallestLicenseFee());
}
}Input: 3 OK 115 MA 135 MT 250
Your output
Smallest license fee: 115
Example2
import java.util.Scanner;
import java.util.ArrayList;
public class Inventory {
private ArrayList<Lesson> lessonList = new ArrayList<Lesson>();
Scanner scnr = new Scanner(System.in);
public void inputLessons(Scanner scnr) {
int currDuration;
String currTopic;
while (true) {
currDuration = scnr.nextInt();
if (currDuration == -1) {
break;
}
currTopic = scnr.next();
Lesson currLesson = new Lesson();
currLesson.setDetails(currDuration, currTopic);
lessonList.add(currLesson);
}
}
public void printLessons() {
Lesson currLesson;
int i;
for (i = 0; i < lessonList.size(); ++i) {
currLesson = lessonList.get(i);
currLesson.print();
}
}
}public class Lesson {
private int duration;
private String topic;
public void setDetails(int newDuration, String newTopic) {
duration = newDuration;
topic = newTopic;
}
public void print() {
System.out.println("Lesson duration: " + duration + ", Topic: " + topic);
}
}import java.util.Scanner;
import java.util.ArrayList;
public class LessonSystem {
public static void main(String[] args) {
Scanner scnr = new Scanner(System.in);
Inventory inventory = new Inventory();
inventory.inputLessons(scnr);
inventory.printLessons();
}
}Ex: If the input is 150 Cars 100 Hobbies 140 Fashion 60 Medicine -1, then the output is:
Lesson duration: 150, Topic: Cars Lesson duration: 100, Topic: Hobbies Lesson duration: 140, Topic: Fashion Lesson duration: 60, Topic: Medicine
15.1 Streams using Strings
import java.util.Scanner;
public class StringInputStream {
public static void main(String[] args) {
String userInfo; // Input string
String firstName; // First name
String lastName; // Last name
int userAge; // Age
userInfo = "Amy Smith 19";
// Create new scanner object with String
Scanner inSS = new Scanner(userInfo);
// Parse name and age values from string
firstName = inSS.next();
lastName = inSS.next();
userAge = inSS.nextInt();
// Output parsed values
System.out.println("First name: " + firstName);
System.out.println("Last name: " + lastName);
System.out.println("Age: " + userAge);
}
} //First name: Amy
//Last name: Smith
// Age: 19import java.util.Scanner;
import java.io.PrintWriter;
import java.io.StringWriter;
public class StringOutputStream {
public static void main(String[] args) {
String item;
int quantity;
int discount;
StringWriter itemCharStream = new StringWriter();
PrintWriter itemOSS = new PrintWriter(itemCharStream);
item = "Headphones";
quantity = 18;
discount = 40;
itemOSS.println(item + " x" + quantity);
itemOSS.print(discount + "% off");
System.out.print(itemCharStream.toString());
}
} // Headphones x18
// 40% offimport java.util.Scanner;
import java.io.PrintWriter;
import java.io.StringWriter;
public class StringStreamOutput {
public static void main (String [] args) {
Scanner scnr = new Scanner(System.in);
String userItem;
StringWriter itemCharStream = new StringWriter();
PrintWriter itemsOSS = new PrintWriter(itemCharStream);
System.out.println("Enter items (type Exit to quit):");
userItem = scnr.next();
while (!userItem.equals("Exit")) {
itemsOSS.print(userItem + " ");
userItem = scnr.next();
}
userItem = itemCharStream.toString();
System.out.println(userItem);
}
} //output: Apples Kiwis Blueberries 15.2 File input
import java.util.Scanner;
import java.io.FileInputStream;
import java.io.IOException;
public class FutonDataProcessor {
public static void main(String[] args) throws IOException {
Scanner scnr = new Scanner(System.in);
String nameOfFile;
int futonCount;
FileInputStream furnitureStream = null;
Scanner inFS = null;
nameOfFile = scnr.next();
furnitureStream = new FileInputStream(nameOfFile);
inFS = new Scanner(furnitureStream);
futonCount = inFS.nextInt();
System.out.println(futonCount);
furnitureStream.close();
}
}import java.util.Scanner;
import java.io.FileInputStream;
import java.io.IOException;
public class FileReading {
public static void main(String[] args) throws IOException {
Scanner scnr = new Scanner(System.in);
FileInputStream fileByteStream = null;
Scanner sofaFS = null;
String dataFileName;
int sofaCount;
dataFileName = scnr.next();
fileByteStream = new FileInputStream(dataFileName);
sofaFS = new Scanner(fileByteStream);
while (sofaFS.hasNextInt() ) {
sofaCount = sofaFS.nextInt();
System.out.println(sofaCount);
}
if (sofaFS.hasNext()) {
System.out.println("Reading stopped at " + sofaFS.next());
}
else {
System.out.println("Reached end of file");
}
fileByteStream.close();
}
} //Input: data2.txt
//output:
//17
//51
//Reached end of file