Interface List<E>
add(E e) |
appends the specified element to the end of this list |
add(int index, E element) |
inserts element at specified position |
addAll(Collection E) |
adds all elements to end of list |
clear() |
removes all elements from the list |
contains(Object o) |
returns true if it contains object |
containsAll(Collection c) |
returns true if all elements of collection are contained |
equals(Object o) |
compares specified object within list for equality |
get(int indedx) |
returns element at specified position |
hashCode() |
returns hashCode value |
indexOf(Object o) |
returns first index of specified object |
remove(int index) |
removes element at specified position |
set(int index, E element) |
replaces element at specified index |
toArray() |
returns an array containing all the elements |
-ordered collection
-user has control over where in the list each element is inserted
-ALLOW DUPLICATE ELEMENTS
Definitions
hashCode() if two objects are equal according to .equals() must have same hashcode
|
Interface Set<E>
add(E e) |
Adds the specified element if not already present |
addAll(Collection c) |
Adds all the elements if not already present |
clear() |
Removes the elements from this set |
contains(Object O) |
Returns true if specified element is contained |
equals(Object O) |
Compares specified Object |
hashCode() |
returns the hash code value for the set |
remove(Object O) |
removes the specified object if present |
size() |
returns number of elements |
toArray() |
Returns an array containing the elements of the set |
E - the type of elements maintained by the set
-contains no duplicate elements
Class HashSet<E>
add(E e) |
adds the element if not already present |
clone() |
shallow copy, elements themselves not cloned |
remove(Object o) |
removes object if present |
size() |
returns number of elements |
-no duplicates
-no guarantee as to the iteration order of the set
Class String
charAt(int index) |
returns the character at index |
compareTo(String anotherString) |
compares two strings alphabetically (caps matter) |
contains(Char c) |
returns true only if the character is contained |
equals(Object anotherObject) |
compares to another object |
hashCode() |
returns hashCode for the string |
length() |
returns the length of the string - counts each character including spaces |
split(String regex) |
splits the string at all point of the regex |
toCharArray() |
converts to a character array |
toLowerCase()/toUpperCase() |
converts all characters to lower/upper case |
-basically a character array. Below are equivalent
String str = "abc";
char data[] = {'a', 'b', 'c'};
Class Array
asList(...) |
returns a fixed size list |
equals() |
returns true if the objects compared are equal to one another |
hashCode() |
returns a hashcode based on the elements of the array |
toString() |
returns a sting representation of the array |
Class ArrayList<E> and Class LinkedList<E>
ArrayList
-resizeable array implementation of the List interface
-has just about all the methods defined in the List interface
LinkedList
-implements nearly all List methods
-traverse list from beginning or end
Circles Country
public class CirclesCountry {
/**
* Returns true if a point is inside a circle and
* returns false otherwise.
* @param x is x-coordinate of point
* @param y is y-coordinate of point
* @param cx is center of circle x-coordinate
* @param cy is center of circle y-coordinate
* @param r is radius of circle
* @return true if (x,y) is inside circle, returns
* false if (x,y) is on or outside circle
*/
public boolean isInside(int px, int py, int cx, int cy, int r){
double dist; //distance from the center of the circle
dist = Math.pow((px - cx), 2) + Math.pow((py - cy), 2);
return dist < r*r;
}
public int leastBorders(int[] x, int[] y, int[] r,
int x1, int y1, int x2, int y2) {
int crosses = 0;
for(int k = 0; k < x.length; k += 1){
if (isInside(x[k], y[k], x1, y1, r[k]) && ! isInside(x[k],y[k], x2, y2, r[k])) {
crosses += 1;
}
if (isInside(x[k], y[k], x2, y2, r[k]) && ! isInside(x[k],y[k], x1, y1, r[k])) {
crosses += 1;
}
}
return crosses;
}
}
|
Body
public class Body {
*/declares all the instance variables as private doubles and String
public Body(double xp, double yp, double xv, double yv, double mass, String filename) {
myXPos = xp;
myYPos = yp;
myXVel = xv;
myYVel = yv;
myMass = mass;
myFileName = filename;
}
/**
* Creates a body by copying parameters from another body
* @param b
*/
public Body(Body b) { //FIXME
myXPos = b.getX();
declares the rest of the instance variables with .get methods
}
/**
all the get methods just return the corresponding instance variable
**/
public double calcDistance(Body b) {
return Math.sqrt((Math.pow(myXPos - b.getX(), 2.0)+ Math.pow(myYPos - b.getY(), 2.0)));
}
Calculates the force exerted on this body by the body specified in the parameter
public double calcForceExertedBy(Body p) {
double force;
double G = 6.67e-11;
force = (GmyMass p.getMass()) / Math.pow(p.calcDistance(this), 2.0);
return force;
}
/**
* Calculates the X component of the force
*/
public double calcForceExertedByX(Body p) {
double dx;
double Fx;
dx = myXPos - p.getX();
Fx = p.calcForceExertedBy(this) * (dx/(p.calcDistance(this)));
return -Fx;
}
* calculates the Y component of the net force
public double calcForceExertedByY(Body p) {
/* same as the X just different variables
}
/**
* calculates the net force in the x direction exerted on a body
*/
public double calcNetForceExertedByX(Body [] bodies) {
double sum = 0;
for (Body b : bodies) {
if (!b.equals(this)) {
sum += b.calcForceExertedByX(this);}}
return -sum;}
/**
* calculates the net force in the y direction exerted on a body
*/
public double calcNetForceExertedByY(Body [] bodies) {
double sum = 0;
for(Body b : bodies) {
if (!b.equals(this)) {
sum += b.calcForceExertedByY(this);
}
}
return -sum;}
/**
* updates the velocity, position, and time variables
*/
public void update(double deltaT, double xforce, double yforce) {
double ax;
double ay;
ax = xforce / this.getMass();
ay = yforce / this.getMass();
myXVel = myXVel + deltaT*ax;
myYVel = myYVel + deltaT*ay;
myXPos = myXPos + deltaT*myXVel;
myYPos = myYPos + deltaT*myYVel;
}
/**
* shows a non-moving image for each body in the simulation
*/
public void draw() {
StdDraw.picture(myXPos, myYPos, "images/"+myFileName);
}
}
|
|
|
Anonymous
public class Anonymous {
public int howMany(String[] headlines, String[] messages) {
// counts[ch] is # occurrences of ch in headlines
int counts[] = new int[256];
for(String s : headlines) {
for(char ch : s.toLowerCase().toCharArray()) {
if (ch == ' ') continue;
counts[ch] = counts[ch] + 1;
}
}
int total = 0;
for(String s : messages) {
int[] mess = oneCount(s);
if (enoughLetters(mess,counts)) {
total += 1;
}
}
return total;
}
private boolean enoughLetters(int[] mess, int[] allLetters) {
boolean canCreate = true;
for(char ch='a'; ch <= 'z'; ch += 1) {
// do we have enough letters to create message?
if (mess[ch] > allLetters[ch]) {
return false;
}
}
return true;
}
|
NBody
public class NBody {
/**
* Read the specified file and return the radius
* @param fname is name of file that can be open
* @return the radius stored in the file
* @throws FileNotFoundException if fname cannot be open
*/
public static double readRadius(String fname) throws FileNotFoundException {
Scanner s = new Scanner(new File(fname));
double radius;
radius = s.nextInt();
radius = s.nextDouble();
s.close();
return radius;
}
/**
* Read all data in file, return array of Celestial Bodies
* read by creating an array of Body objects from data read.
* @param fname is name of file that can be open
* @return array of Body objects read
* @throws FileNotFoundException if fname cannot be open
*/
public static Body[] readBodies(String fname) throws FileNotFoundException {
Scanner s = new Scanner(new File(fname));
// TODO: read # bodies, create array, ignore radius
int nb = 0; // # bodies to be read
nb = s.nextInt();
s.nextDouble();
Body [] bodiesArray = new Body [nb];
for(int k=0; k < nb; k++) {
double xPos;
double yPos;
double xVel;
double yVel;
double mass;
String fileName;
xPos = s.nextDouble();
yPos = s.nextDouble();
xVel = s.nextDouble();
yVel = s.nextDouble();
mass = s.nextDouble();
fileName = s.next();
bodiesArray[k] = new Body(xPos, yPos, xVel, yVel, mass, fileName);
}
s.close();
return bodiesArray;
}
public static void main(String[] args) throws FileNotFoundException{
double totalTime = 157788000.0;
double dt = 25000.0;
String fname= "./data/planets.txt";
if (args.length > 2) {
totalTime = Double.parseDouble(args[0]);
dt = Double.parseDouble(args[1]);
fname = args[2];
}
Body[] bodies = readBodies(fname);
double radius = readRadius(fname);
StdDraw.setScale(-radius, radius);
StdDraw.picture(0,0,"images/starfield.jpg");
for(double t = 0.0; t < totalTime; t += dt) {
// TODO: create double arrays xforces and yforces
// to hold forces on each body
double xForces[] = new double [bodies.length];
double yForces[] = new double [bodies.length];
// TODO: loop over all bodies, calculate
// net forces and store in xforces and yforces
for (int k = 0; k < bodies.length; k++) {
xForces[k] = bodies[k].calcNetForceExertedByX(bodies);
yForces[k] = bodies[k].calcNetForceExertedByY(bodies);
}
// TODO: loop over all bodies and call update
// with dt and corresponding xforces, yforces values
for(int k = 0; k < bodies.length; k++) {
bodies[k].update(dt, xForces[k], yForces[k]);
}
StdDraw.picture(0,0,"images/starfield.jpg");
// TODO: loop over all bodies and call draw on each one
for (int k = 0; k < bodies.length; k++) {
bodies[k].draw();
}
StdDraw.show(10);
}
// prints final values after simulation
System.out.printf("%d\n", bodies.length);
System.out.printf("%.2e\n", radius);
for (int i = 0; i < bodies.length; i++) {
System.out.printf("%11.4e %11.4e %11.4e %11.4e %11.4e %12s\n",
bodies[i].getX(), bodies[i].getY(),
bodies[i].getXVel(), bodies[i].getYVel(),
bodies[i].getMass(), bodies[i].getName());
}
}
}
|
MemberCheck
public class MemberCheck {
public String[] whosDishonest(String[] club1,
String[] club2,
String[] club3) {
Set<String> result = new HashSet<>(); //making these a set ensures that there's no duplicates
Set<String> s1 = new HashSet<>(Arrays.asList(club1));
Set<String> s2 = new HashSet<>(Arrays.asList(club2));
Set<String> s3 = new HashSet<>(Arrays.asList(club3));
result.addAll(crossover(s1, s2));
result.addAll(crossover(s1, s3));
result.addAll(crossover(s2, s3));
String[] finalList = result.toArray(new String[0]);
Arrays.sort(finalList);
return finalList;
}
private Set crossover(Set club1, Set club2) {
Set<String> cloned = new HashSet<>();
cloned.addAll(club1);
cloned.retainAll(club2);
return cloned;
}
}
|
Queue
add(Element e) |
inserts the specified element into the queue |
remove() |
calls and removes the head of the queue |
PriorityQueue
Note*: |
Head of the queue is the least element |
add(Element e) |
inserts specified element into priority queue |
contains(Element e) |
returns true if PriorityQueue contains specified element |
remove(Object o) |
removes single instance of the object |
size() |
returns number of elements in the PriorityQueue |
peek() |
retrieves but doesn't remove the head |
poll() |
retrieves and removes the head |
Collections
Collections.sort(ArrayList) |
sorts lowest to highest |
Collections.reverse(ArrayList) |
reverses the order |
Arrays
Arrays.sort(int[] OR String[]) |
sorts it from smallest to largest or alphabetically first to last |
Random Commands
Integer.parseInt(String s) |
converts string to int |
.split(" ") |
.substring(start index, end index) |
Includes start index, not end index |
Scanner
close() |
closes the scanner |
hasNext() |
returns true if has another token |
hasNextDouble() |
if it has another double, there are other - same for float, int, line, long |
next() |
returns the next token |
nextDouble() |
returns the next double token - works for float, int, line, long |
reset() |
resets the scanner |
|