Help with array program!!
hi friends
i am a new comer to java and I have been studying Arrays recently. I came across this program on the internet ( thanks to Peter Williams)
package DataStructures;
import java.util.NoSuchElementException;
* An array implementation of a stack
* @author Peter Williams
public class StackArray implements Stack {
private int top; // for storing next item
public StackArray() {
stack = new Object[1];
top = 0;
public boolean isEmpty() {
return top == 0;
public void push(Object item) {
if (top == stack.length) {
// expand the stack
Object[] newStack = new Object[2*stack.length];
System.arraycopy(stack, 0, newStack, 0, stack.length);
stack = newStack;
stack[top++] = item;
public Object pop() {
if (top == 0) {
throw new NoSuchElementException();
} else {
return stack[--top];
interface Stack {
* Indicates the status of the stack.
* @return <code>true</code> if the stack is empty.
public boolean isEmpty();
* Pushes an item onto the stack.
* @param <code>item</code> the Object to be pushed.
public void push(Object item);
* Pops an item off the stack.
* @return the item most recently pushed onto the stack
* @exception NoSuchElementException if the stack is empty.
public Object pop();
class StackDemo {
public static void main(String[] args) {
Stack s = new StackArray();
// Stack s = new StackList();
for (int i = 0; i < 8; i++) {
s.push(new Integer(i));
while (!s.isEmpty ()) {
System.out.println(s.pop());
what baffles me is as below:
there is an 'if' construct in the push method, which talks about if(top == stack.length)
I fail to understand how top can at any time be equal to stack.length.
Could you help me understand this program?
a thousand apologies and thanks in advance
figurativelly speaking:
if you take an array and put it standing on your tesk, so that start of array points to floor, and end of array points to roof, then you can start filling that array as stack.
if you put books into stack, then you push (put) them on top of the stack, so the first book ever but into stack is adiacent to array element with index zero (0) and then second book in stack would be adiacent to array element that has index one (1) and so on.
if you have array of size 5, then fift book in stack would be adiacent to array element with index four (4)
after pushing that Object to stack, the top variable will get incremented (top++ in code) and be equal to size of array.
however, if you would like to push another Object to stack, then it would fall over the end of the array, so longer array is needed...
Similar Messages
-
Help with Paint program.
Hello. I am somewhat new to Java and I was recently assigned to do a simple paint program. I have had no trouble up until my class started getting into the graphical functions of Java. I need help with my program. I am supposed to start off with a program that draws lines and changes a minimum of 5 colors. I have the line function done but my color change boxes do not work and I am able to draw inside the box that is supposed to be reserved for color buttons. Here is my code so far:
// Lab13110.java
// The Lab13 program assignment is open ended.
// There is no provided student version for starting, nor are there
// any files with solutions for the different point versions.
// Check the Lab assignment document for additional details.
import java.applet.Applet;
import java.awt.*;
public class Lab13110 extends Applet
int[] startX,startY,endX,endY;
int currentStartX,currentStartY,currentEndX,currentEndY;
int lineCount;
Rectangle red, green, blue, yellow, black;
int numColor;
Image virtualMem;
Graphics gBuffer;
int rectheight,rectwidth;
public void init()
startX = new int[100];
startY = new int[100];
endX = new int[100];
endY = new int[100];
lineCount = 0;
red = new Rectangle(50,100,25,25);
green = new Rectangle(50,125,25,25);
blue = new Rectangle(50,150,25,25);
yellow = new Rectangle(25,112,25,25);
black = new Rectangle(25,137,25,25);
numColor = 0;
virtualMem = createImage(100,600);
gBuffer = virtualMem.getGraphics();
gBuffer.drawRect(0,0,100,600);
public void paint(Graphics g)
for (int k = 0; k < lineCount; k++)
g.drawLine(startX[k],startY[k],endX[k],endY[k]);
g.drawLine(currentStartX,currentStartY,currentEndX,currentEndY);
g.setColor(Color.red);
g.fillRect(50,100,25,25);
g.setColor(Color.green);
g.fillRect(50,125,25,25);
g.setColor(Color.blue);
g.fillRect(50,150,25,25);
g.setColor(Color.yellow);
g.fillRect(25,112,25,25);
g.setColor(Color.black);
g.fillRect(25,137,25,25);
switch (numColor)
case 1:
g.setColor(Color.red);
break;
case 2:
g.setColor(Color.green);
break;
case 3:
g.setColor(Color.blue);
break;
case 4:
g.setColor(Color.yellow);
break;
case 5:
g.setColor(Color.black);
break;
case 6:
g.setColor(Color.black);
break;
g.setColor(Color.black);
g.drawRect(0,0,100,575);
public boolean mouseDown(Event e, int x, int y)
currentStartX = x;
currentStartY = y;
if(red.inside(x,y))
numColor = 1;
else if(green.inside(x,y))
numColor = 2;
else if(blue.inside(x,y))
numColor = 3;
else if(yellow.inside(x,y))
numColor = 4;
else if(black.inside(x,y))
numColor = 5;
else
numColor = 6;
repaint();
return true;
public boolean mouseDrag(Event e, int x, int y)
int Rectheight = 500;
int Rectwidth = 900;
currentEndX = x;
currentEndY = y;
Rectangle window = new Rectangle(0,0,900,500);
//if (window.inside(Rectheight,Rectwidth))
repaint();
return true;
public boolean mouseUp(Event e, int x, int y)
int Rectheight = 500;
int Rectwidth = 900;
startX[lineCount] = currentStartX;
startY[lineCount] = currentStartY;
endX[lineCount] = x;
endY[lineCount] = y;
lineCount++;
Rectangle window = new Rectangle(0,0,900,500);
if (window.inside(Rectheight,Rectwidth))
repaint();
return true;
public void Rectangle(Graphics g, int x, int y)
g.setColor(Color.white);
Rectangle screen = new Rectangle(100,0,900,600);
}If anyone could point me in the right direction of how to go about getting my buttons to work and fixing the button box, I would be greatly appreciative. I just need to get a little bit of advice and I think I should be good after I get this going.
Thanks.This isn't in any way a complete solution, but I'm posting code for a mouse drag outliner. This may be preferable to how you are doing rectangles right now
you are welcome to use and modify this code but please do not change the package and make sure that you tell your teacher where you got it from
MouseDragOutliner.java
package tjacobs.ui;
import java.awt.BasicStroke;
import java.awt.Color;
import java.awt.Component;
import java.awt.Container;
import java.awt.Graphics;
import java.awt.Graphics2D;
import java.awt.Point;
import java.awt.Stroke;
import java.awt.event.*;
import java.util.ArrayList;
import java.util.Iterator;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.SwingUtilities;
* See the public static method addAMouseDragOutliner
public class MouseDragOutliner extends MouseAdapter implements MouseMotionListener {
public static final BasicStroke DASH_STROKE = new BasicStroke(1.0f, BasicStroke.CAP_SQUARE, BasicStroke.JOIN_BEVEL, 10.0f, new float[] {8, 8}, 0);
private boolean mUseMove = false;
private Point mStart;
private Point mEnd;
private Component mComponent;
private MyRunnable mRunner= new MyRunnable();
private ArrayList mListeners = new ArrayList(1);
public MouseDragOutliner() {
super();
public MouseDragOutliner(boolean useMove) {
this();
mUseMove = useMove;
public void mouseDragged(MouseEvent me) {
doMouseDragged(me);
public void mousePressed(MouseEvent me) {
mStart = me.getPoint();
public void mouseEntered(MouseEvent me) {
mStart = me.getPoint();
public void mouseReleased(MouseEvent me) {
Iterator i = mListeners.iterator();
Point end = me.getPoint();
while (i.hasNext()) {
((OutlineListener)i.next()).mouseDragEnded(mStart, end);
//mStart = null;
public void mouseMoved(MouseEvent me) {
if (mUseMove) {
doMouseDragged(me);
public void addOutlineListener(OutlineListener ol) {
mListeners.add(ol);
public void removeOutlineListener(OutlineListener ol) {
mListeners.remove(ol);
private class MyRunnable implements Runnable {
public void run() {
Graphics g = mComponent.getGraphics();
if (g == null) {
return;
Graphics2D g2 = (Graphics2D) g;
Stroke s = g2.getStroke();
g2.setStroke(DASH_STROKE);
int x = Math.min(mStart.x, mEnd.x);
int y = Math.min(mStart.y, mEnd.y);
int w = Math.abs(mEnd.x - mStart.x);
int h = Math.abs(mEnd.y - mStart.y);
g2.setXORMode(Color.WHITE);
g2.drawRect(x, y, w, h);
g2.setStroke(s);
public void doMouseDragged(MouseEvent me) {
mEnd = me.getPoint();
if (mStart != null) {
mComponent = me.getComponent();
mComponent.repaint();
SwingUtilities.invokeLater(mRunner);
public static MouseDragOutliner addAMouseDragOutliner(Component c) {
MouseDragOutliner mdo = new MouseDragOutliner();
c.addMouseListener(mdo);
c.addMouseMotionListener(mdo);
return mdo;
public static interface OutlineListener {
public void mouseDragEnded(Point start, Point finish);
public static void main(String[] args) {
JFrame f = new JFrame("MouseDragOutliner Test");
Container c = f.getContentPane();
JPanel p = new JPanel();
//p.setBackground(Color.BLACK);
c.add(p);
addAMouseDragOutliner(p);
f.setBounds(200, 200, 400, 400);
f.addWindowListener(new WindowClosingActions.Exit());
f.setVisible(true);
} -
Need some help with a program Please.
Well, im new here, im new to java, so i need your help, i have to make a connect four program, my brother "Kind of" helped me and did a program for me, but the problem is i cant use some of those commands in the program and i have to replace them with what ive learned, so i will post the program and i will need your help to modify it for me.
and for these programs, also i want help for:
They have errors and i cant fix'em
the commands that i've leaned:
If statements, for loops, while loops,do while, strings, math classes, swithc statement, else if,logical operators,methods, one and two dimensional arrays.
Thanx in advance,
truegunner
// Fhourstones 3.0 Board Logic
// Copyright 2000-2004 John Tromp
import java.io.*;
class Connect4 {
static long color[]; // black and white bitboard
static final int WIDTH = 7;
static final int HEIGHT = 6;
// bitmask corresponds to board as follows in 7x6 case:
// . . . . . . . TOP
// 5 12 19 26 33 40 47
// 4 11 18 25 32 39 46
// 3 10 17 24 31 38 45
// 2 9 16 23 30 37 44
// 1 8 15 22 29 36 43
// 0 7 14 21 28 35 42 BOTTOM
static final int H1 = HEIGHT+1;
static final int H2 = HEIGHT+2;
static final int SIZE = HEIGHT*WIDTH;
static final int SIZE1 = H1*WIDTH;
static final long ALL1 = (1L<<SIZE1)-1L; // assumes SIZE1 < 63
static final int COL1 = (1<<H1)-1;
static final long BOTTOM = ALL1 / COL1; // has bits i*H1 set
static final long TOP = BOTTOM << HEIGHT;
int moves[],nplies;
byte height[]; // holds bit index of lowest free square
public Connect4()
color = new long[2];
height = new byte[WIDTH];
moves = new int[SIZE];
reset();
void reset()
nplies = 0;
color[0] = color[1] = 0L;
for (int i=0; i<WIDTH; i++)
height[i] = (byte)(H1*i);
public long positioncode()
return 2*color[0] + color[1] + BOTTOM;
// color[0] + color[1] + BOTTOM forms bitmap of heights
// so that positioncode() is a complete board encoding
public String toString()
StringBuffer buf = new StringBuffer();
for (int i=0; i<nplies; i++)
buf.append(1+moves);
buf.append("\n");
for (int w=0; w<WIDTH; w++)
buf.append(" "+(w+1));
buf.append("\n");
for (int h=HEIGHT-1; h>=0; h--) {
for (int w=h; w<SIZE1; w+=H1) {
long mask = 1L<<w;
buf.append((color[0]&mask)!= 0 ? " @" :
(color[1]&mask)!= 0 ? " 0" : " .");
buf.append("\n");
if (haswon(color[0]))
buf.append("@ won\n");
if (haswon(color[1]))
buf.append("O won\n");
return buf.toString();
// return whether columns col has room
final boolean isplayable(int col)
return islegal(color[nplies&1] | (1L << height[col]));
// return whether newboard lacks overflowing column
final boolean islegal(long newboard)
return (newboard & TOP) == 0;
// return whether newboard is legal and includes a win
final boolean islegalhaswon(long newboard)
return islegal(newboard) && haswon(newboard);
// return whether newboard includes a win
final boolean haswon(long newboard)
long y = newboard & (newboard>>HEIGHT);
if ((y & (y >> 2*HEIGHT)) != 0) // check diagonal \
return true;
y = newboard & (newboard>>H1);
if ((y & (y >> 2*H1)) != 0) // check horizontal -
return true;
y = newboard & (newboard>>H2); // check diagonal /
if ((y & (y >> 2*H2)) != 0)
return true;
y = newboard & (newboard>>1); // check vertical |
return (y & (y >> 2)) != 0;
void backmove()
int n;
n = moves[--nplies];
color[nplies&1] ^= 1L<<--height[n];
void makemove(int n)
color[nplies&1] ^= 1L<<height[n]++;
moves[nplies++] = n;
public static void main(String argv[])
Connect4 c4;
String line;
int col=0, i, result;
long nodes, msecs;
c4 = new Connect4();
c4.reset();
BufferedReader dis = new BufferedReader(new InputStreamReader(System.in));
for (;;) {
System.out.println("position " + c4.positioncode() + " after moves " + c4 + "enter move(s):");
try {
line = dis.readLine();
} catch (IOException e) {
System.out.println(e);
System.exit(0);
return;
if (line == null)
break;
for (i=0; i < line.length(); i++) {
col = line.charAt(i) - '1';
if (col >= 0 && col < WIDTH && c4.isplayable(col))
c4.makemove(col);
By the way im using Ready to program for the programming.You can't really believe that his brother did this
for him...I did miss that copyright line at the beginning when
I first looked it over, but you know, if it had been
his brother, I'd be kinda impressed. This wasn't a
25 line program. It actually would have required
SOME thought. I doubt my brother woulda done that
for me (notwithstanding the fact that I wouldn't need
help for that program, and my brother isn't a
programmer).I originally missed the comments at the top but when I saw the complexity of what was written then I knew that it was too advanced for a beginner and I relooked through the code and saw the comments. -
hi,
i study java at school and i need help with my project.
im doing a simple demonstration of a pathfinding program whose algoritm i read off Wikipedia (http://en.wikipedia.org/wiki/Pathfinding)where the co-ordinates of the start and end points
are entered and the route is calculated as a list of co-ordinates. Here is the section of code i am having trouble with-
void find_path(int x,int y,int p,int q)
int t1;int t2;
int temp_pool[][]=new int[4][3];//stores contagious cells of elements in grid pool
int grid_pool[][]= new int[100000][3];
int pass_pool[][]=new int[4][3];//stores the pool of squares which can be added to the list of direction
int path[][]= new int[10000][3];//stores actual path
int count=1;int note=10;int kk=0;
int curx,cury;
//the above arrays contain 3 columns - to store x and y co-ordinate and a counter variable(the purpose of which will become clear later)
grid_pool[0][0]=p;
grid_pool[0][1]=q;
grid_pool[0][2]=0;
int counter=grid_pool[0][2];
for(int i=0;i<=100;i++)
counter++;
curx=grid_pool[0];
cury=grid_pool[i][1];
temp_pool[0][0]=curx-1;
temp_pool[0][1]=cury;
temp_pool[0][2]=counter;
temp_pool[0][0]=curx;
temp_pool[0][1]=cury-1;
temp_pool[0][2]=counter;
temp_pool[0][0]=curx+1;
temp_pool[0][1]=cury;
temp_pool[0][2]=counter;
temp_pool[0][0]=curx;
temp_pool[0][1]=cury+1;
temp_pool[0][2]=counter;
int pass=0;
for(int j=0;j<=3;j++)
int check=0;
int in=temp_pool[j][0];
int to=temp_pool[j][1];
if(activemap[in][to]=='X')
{check++;}
if(linear_search(grid_pool,in,to)==false)
{check++;}
if(check==2)
pass_pool[pass][0]=in;
pass_pool[pass][1]=to;
pass++;
}//finding which co-ordinates are not walls and which are not already present
for(int k=0;k<=pass_pool.length-1;k++)
grid_pool[count][0]=pass_pool[k][0];
grid_pool[count][1]=pass_pool[k][1];
count++;
if(linear_search(grid_pool,x,y)==true)
break;
//in this part we have isolated the squares which run in the approximate direction of the goal
//in the next part we will isolate the exact co-ordinates in another array called path
int yalt=linear_searchwindex(grid_pool,p,q);
t1=grid_pool[yalt][2];
int g1;int g2;int g3;
for(int u=yalt;u>=0;u--)
g3=find_next(grid_pool,p,q);
g2=g3/10;
g1=g3%10;
path[0]=g2;
path[u][1]=g3;
path[u][2]=u;
for(int v=0;v<=yalt;v++)
System.out.println(path[v][0]+','+path[v][1]);
ill be grateful if anyone can fix it. im done with the rest thoughdeath_star12 wrote:
hi,
i study java at school and i need help with my project.
im doing a simple demonstration of a pathfinding program whose algoritm i read off Wikipedia (http://en.wikipedia.org/wiki/Pathfinding)where the co-ordinates of the start and end points
are entered and the route is calculated as a list of co-ordinates. Here is the section of code i am having trouble with-
...The part "i am having trouble with" means absolutely nothing to the people who are answering questions here. It's like going to the doctor with a broken rib and just saying "doc, I don't feel so well". Get my point?
Also, please take the trouble to properly spell words and use a bit of capitalization. Your question is hard to read as it is, which will most probably cause (some) people not to help you. And lastly, please use code tags when posting code: it makes it so much easier to read (see: [Formatting Messages|http://mediacast.sun.com/users/humanlever/media/forums_text_editor.mp4]).
Thanks. -
Help with arrays...Please Help
Hello,
Iam trying to make a library system. I have three classes, one for the GUI, User class, and Users class. User class instantiates an object with all the relevant data like, Name, Age, Address, etc. The Users class contains a array of User Objects.
With this program I have to be able to create users, display users and delete users. The problem Iam having is displaying them. (I think I correctly store the User Objectsin the array, and Iam having problems retreiving them). The thing is when I run the program I don't get any exception errors, just nothing gets displayed!
Here is part of my code:
public class Users {
//declaring variables
public Users (){
initialiseArray();
public void initialiseArray(){
userArray = new User [50];
// This method first checks to see if there is enough room for a new
// user object. If there is the object is added to the array, if there is'nt
// Then method expandUserArray is called to make room for the user
public void addUser( User user)
if (userArraySize == userArray.length) {
expandUserArray();
userArray[userArraySize] = user;
userArraySize++;
// In this method first the user is searched for in the array, if found
// Then method decreaseUserArray is called to delete the user
public void deleteUser ( User user )
location = 0;
while (location < userArraySize && userArray[location] != user) {
location++;
if (userArray[location] == user) {
decreaseUserArray(location);
public void displayUsers( ){
for (int i = 0; i < userArraySize; i++) {
usersInformation += "\n" + (userArray.getUserName());
usersInformation += "\t" + (userArray[i].getUserID());
usersInformation += "\t" + (userArray[i].getUserAddress());
public String getUserInformation(){
//usersInformation = userInformation.toString();
return usersInformation;
// The User is deleted by shifting all the above users one place down
private void decreaseUserArray(int loc)
userArray[loc] = userArray[userArraySize - 1];
userArray[userArraySize - 1] = null;
userArraySize--;
// This method increase the size of the array by 50%
private void expandUserArray( )
int newSize = (int) (userArray.length * increasePercentage);
User newUserArray[] = new User[newSize];
for (int i = 0; i < userArray.length; i++) {
newUserArray[i] = userArray[i];
userArray = newUserArray;
Is there anything wrong with my arrays??? Here is part of my code for action performed:
void addUserButton_actionPerformed(ActionEvent e) {
newUserName = userNameTextField.getText();
newUserAddress = userAdressTextField.getText();
newUserID = Integer.parseInt ( userIDTextField.getText());
User newUser = new User (newUserName, newUserAddress, newUserID);
Users users = new Users();
users.addUser(newUser);
clearButton();
void displayUsersButton_actionPerformed(ActionEvent e) {
Users users = new Users();
users.displayUsers();
displayUsersTextArea.append (users.getUserInformation());
void deleteUserButton_actionPerformed(ActionEvent e) {
//Still incomplete
Thanks for your help!First, PLEASE USE THE SPECIAL TOKENS FOUND AT
http://forum.java.sun.com/faq.jsp#messageformat WHEN
POSTING CODE!!!! Sorry about that, Iam new and I did'nt know about Special Tokens.
As far as the problem, let me start out by asking if
you've considered using a class that implements the
List interface. Perhaps Vector or ArrayList would
make a better choice since they already handle
"growing" and "shrinking" for you.I tried using vector arrays but it got too complicated. It was very easy to add and remove objects from the vector but I never figured out how to display all the objects with all the data.
public void displayUsers( ){
for (int i = 0; i < userArraySize; i++) {
usersInformation += "\n" +
" + (userArray.getUserName()); //what is
usersInformation? Also, how does getUserName(),
getUserID(), getUserAddress() know which user object
to operate on if these are methods of userArray?
usersInformation += "\t" +
" + (userArray.getUserID()); //I'm guess you've
only posted "some" of your code.
usersInformation += "\t" +
" + (userArray.getUserAddress());//Try posting all
that you have so far, and please use the special
tokens to format your code.
}I made a mistake while I was cutting & pasting my code. It should be for example:
usersInformation += "\n" (userArray.getUserName());
The comment about instanciating a new Users for each
actionPerformed is on point. You are replacing your
Usres with a new object each time.Yep this was the problem. I just changed the constructor, declared and
created object of Users elsewhere.
Thanks for your help! -
Hello I need help with the following code for a Payroll program.
//CheckPoint: Payroll Program Part 3
//Java Programming IT215
//Arianne Gallegos
//05/02/2007
//Payroll3.java
//Payroll program that calculates the weekly pay for an employee.
import java.util.Scanner; // program uses class Scanner
public class Payroll3
private string name;
private double rate;
private double hours;
// Constructor to store Employee Data
public EmployeeData( String nameOfEmployee, double hourlyRate, double hoursWorked )
name = nameOfEmployee;
rate = hourlyRate;
hours = hoursWorked;
} // end constructor
} //end class EmployeeData
// main method begins execution of java application
public static void main( String args[] )
System.out.println( "Welcome to the Payroll Program! " );
boolean quit = false; // This flag will control whether we exit the loop below
// Loop until user types "quit" as the employee name:
while (!quit)
// create scanner to obtain input from command window
Scanner input = new Scanner ( System.in );
System.out.println(); // outputs a blank line
System.out.print( "Please enter the employee name or quit to terminate program: " );
// prompt for and input employee name
String nameOfEmployee = input.nextLine(); // read what user has inputted
if ( nameOfEmployee.equals("quit")) // Check whether user indicated to quit program
System.out.println( "Program has ended" );
quit = true;
else
// User did not indicate to stop, so continue reading info for this iteration:
float hourlyRate; // first number to multiply
float hoursWorked; // second number to multiply
float product; // product of hourlyRate and hoursWorked
System.out.print( "Enter hourly rate: " ); // prompt
hourlyRate = input.nextFloat(); // read first number from user
while (hourlyRate <= 0) // prompt until a positive value is entered
System.out.print( "Hourly rate must be a positive value. " +
"Please enter the hourly rate again: " ); // prompt for positive value for hourly rate
hourlyRate = input.nextFloat(); // read first number again
System.out.print( "Enter hours worked: " ); // prompt
hoursWorked = input.nextFloat(); // read second number from user
while (hoursWorked <= 0) // prompt until a positive value is entered
System.out.print( "Hours worked must be a positive value. " +
"Please enter the hours worked again: " ); // prompt for positive value for hours worked
hoursWorked = input.nextFloat(); // read second number again
product = (float) hourlyRate * hoursWorked; // multiply the hourly rate by the hours worked
// Display output for this iteration
System.out.println(); // outputs a blank line
System.out.print( nameOfEmployee ); // display employee name
System.out.printf( "'s weekly pay is: $%,.2f\n", product); // display product
System.out.println(); // outputs a blank line
// Display ending message:
System.out.println( "Thank you for using the Payroll program!" );
System.out.println(); // outputs a blank line
} // end method main
} // end class Payroll3I am getting the following errors:
Payroll3.java:18: invalid method declaration; return type required
public EmployeeData( String nameOfEmployee, double hourlyRate, double hours
Worked )
^
Payroll3.java:28: class, interface, or enum expected
public static void main( String args[] )
^
Payroll3.java:33: class, interface, or enum expected
boolean quit = false; // This flag will control whether we exit the loop b
elow
^
Payroll3.java:36: class, interface, or enum expected
while (!quit)
^
Payroll3.java:42: class, interface, or enum expected
System.out.println(); // outputs a blank line
^
Payroll3.java:43: class, interface, or enum expected
System.out.print( "Please enter the employee name or quit to terminate p
rogram: " );
^
Payroll3.java:45: class, interface, or enum expected
String nameOfEmployee = input.nextLine(); // read what user has inputted
^
Payroll3.java:48: class, interface, or enum expected
if ( nameOfEmployee.equals("quit")) // Check whether user indicated to q
uit program
^
Payroll3.java:51: class, interface, or enum expected
quit = true;
^
Payroll3.java:52: class, interface, or enum expected
^
Payroll3.java:57: class, interface, or enum expected
float hoursWorked; // second number to multiply
^
Payroll3.java:58: class, interface, or enum expected
float product; // product of hourlyRate and hoursWorked
^
Payroll3.java:60: class, interface, or enum expected
System.out.print( "Enter hourly rate: " ); // prompt
^
Payroll3.java:61: class, interface, or enum expected
hourlyRate = input.nextFloat(); // read first number from user
^
Payroll3.java:64: class, interface, or enum expected
while (hourlyRate <= 0) // prompt until a positive value is entered
^
Payroll3.java:68: class, interface, or enum expected
hourlyRate = input.nextFloat(); // read first number again
^
Payroll3.java:69: class, interface, or enum expected
^
Payroll3.java:72: class, interface, or enum expected
hoursWorked = input.nextFloat(); // read second number from user
^
Payroll3.java:75: class, interface, or enum expected
while (hoursWorked <= 0) // prompt until a positive value is entered
^
Payroll3.java:79: class, interface, or enum expected
hoursWorked = input.nextFloat(); // read second number again
^
Payroll3.java:80: class, interface, or enum expected
^
Payroll3.java:86: class, interface, or enum expected
System.out.println(); // outputs a blank line
^
Payroll3.java:87: class, interface, or enum expected
System.out.print( nameOfEmployee ); // display employee name
^
Payroll3.java:88: class, interface, or enum expected
System.out.printf( "'s weekly pay is: $%,.2f\n", product); // display
product
^
Payroll3.java:89: class, interface, or enum expected
System.out.println(); // outputs a blank line
^
Payroll3.java:91: class, interface, or enum expected
^
Payroll3.java:96: class, interface, or enum expected
System.out.println(); // outputs a blank line
^
Payroll3.java:98: class, interface, or enum expected
} // end method main
^
The problem I am having is getting the constructor to work with the rest of the program can someone please point out to me how to correct this. I have read my textbook as well as tutorials but I just don't seem to get it right. Please help.
P.S. I have never taken a programming class before so please be kind.Ok, I changed the name of the constructor:
//CheckPoint: Payroll Program Part 3
//Java Programming IT215
//Arianne Gallegos
//04/23/2007
//Payroll3.java
//Payroll program that calculates the weekly pay for an employee.
import java.util.Scanner; // program uses class Scanner
public class Payroll3
private string name;
private float rate;
private float hours;
// Constructor to store Employee Data
public void Payroll3( string nameOfEmployee, float hourlyRate, float hoursWorked )
name = nameOfEmployee;
rate = hourlyRate;
hours = hoursWorked;
} // end constructor
} //end class EmployeeData
// main method begins execution of java application
public static void main( String args[] )
System.out.println( "Welcome to the Payroll Program! " );
boolean quit = false; // This flag will control whether we exit the loop below
// Loop until user types "quit" as the employee name:
while (!quit)
// create scanner to obtain input from command window
Scanner input = new Scanner ( System.in );
System.out.println(); // outputs a blank line
System.out.print( "Please enter the employee name or quit to terminate program: " );
// prompt for and input employee name
String nameOfEmployee = input.nextLine(); // read what user has inputted
if ( nameOfEmployee.equals("quit")) // Check whether user indicated to quit program
System.out.println( "Program has ended" );
quit = true;
else
// User did not indicate to stop, so continue reading info for this iteration:
float hourlyRate; // first number to multiply
float hoursWorked; // second number to multiply
float product; // product of hourlyRate and hoursWorked
System.out.print( "Enter hourly rate: " ); // prompt
hourlyRate = input.nextFloat(); // read first number from user
while (hourlyRate <= 0) // prompt until a positive value is entered
System.out.print( "Hourly rate must be a positive value. " +
"Please enter the hourly rate again: " ); // prompt for positive value for hourly rate
hourlyRate = input.nextFloat(); // read first number again
System.out.print( "Enter hours worked: " ); // prompt
hoursWorked = input.nextFloat(); // read second number from user
while (hoursWorked <= 0) // prompt until a positive value is entered
System.out.print( "Hours worked must be a positive value. " +
"Please enter the hours worked again: " ); // prompt for positive value for hours worked
hoursWorked = input.nextFloat(); // read second number again
product = (float) hourlyRate * hoursWorked; // multiply the hourly rate by the hours worked
// Display output for this iteration
System.out.println(); // outputs a blank line
System.out.print( nameOfEmployee ); // display employee name
System.out.printf( "'s weekly pay is: $%,.2f\n", product); // display product
System.out.println(); // outputs a blank line
// Display ending message:
System.out.println( "Thank you for using the Payroll program!" );
System.out.println(); // outputs a blank line
} // end method main
} // end class Payroll3I still get the following error codes:
C:\IT215\Payroll3>javac Payroll3.java
Payroll3.java:28: class, interface, or enum expected
public static void main( String args[] )
^
Payroll3.java:33: class, interface, or enum expected
boolean quit = false; // This flag will control whether we exit the loop b
elow
^
Payroll3.java:36: class, interface, or enum expected
while (!quit)
^
Payroll3.java:42: class, interface, or enum expected
System.out.println(); // outputs a blank line
^
Payroll3.java:43: class, interface, or enum expected
System.out.print( "Please enter the employee name or quit to terminate p
rogram: " );
^
Payroll3.java:45: class, interface, or enum expected
String nameOfEmployee = input.nextLine(); // read what user has inputted
^
Payroll3.java:48: class, interface, or enum expected
if ( nameOfEmployee.equals("quit")) // Check whether user indicated to q
uit program
^
Payroll3.java:51: class, interface, or enum expected
quit = true;
^
Payroll3.java:52: class, interface, or enum expected
^
Payroll3.java:57: class, interface, or enum expected
float hoursWorked; // second number to multiply
^
Payroll3.java:58: class, interface, or enum expected
float product; // product of hourlyRate and hoursWorked
^
Payroll3.java:60: class, interface, or enum expected
System.out.print( "Enter hourly rate: " ); // prompt
^
Payroll3.java:61: class, interface, or enum expected
hourlyRate = input.nextFloat(); // read first number from user
^
Payroll3.java:64: class, interface, or enum expected
while (hourlyRate <= 0) // prompt until a positive value is entered
^
Payroll3.java:68: class, interface, or enum expected
hourlyRate = input.nextFloat(); // read first number again
^
Payroll3.java:69: class, interface, or enum expected
^
Payroll3.java:72: class, interface, or enum expected
hoursWorked = input.nextFloat(); // read second number from user
^
Payroll3.java:75: class, interface, or enum expected
while (hoursWorked <= 0) // prompt until a positive value is entered
^
Payroll3.java:79: class, interface, or enum expected
hoursWorked = input.nextFloat(); // read second number again
^
Payroll3.java:80: class, interface, or enum expected
^
Payroll3.java:86: class, interface, or enum expected
System.out.println(); // outputs a blank line
^
Payroll3.java:87: class, interface, or enum expected
System.out.print( nameOfEmployee ); // display employee name
^
Payroll3.java:88: class, interface, or enum expected
System.out.printf( "'s weekly pay is: $%,.2f\n", product); // display
product
^
Payroll3.java:89: class, interface, or enum expected
System.out.println(); // outputs a blank line
^
Payroll3.java:91: class, interface, or enum expected
^
Payroll3.java:96: class, interface, or enum expected
System.out.println(); // outputs a blank line
^
Payroll3.java:98: class, interface, or enum expected
} // end method main
^
27 errors
Any other suggestions? -
I seem to be having a little problem with my program. In my main program, depending on which method comes first, the other methods wont work for example the way my main program is not, with occurance method before removeLetter method, the occurance method works fine, but my removeLetter meth won't remove the letter. But if i switch the two and have removeLetter first then it will remove the letter, but my occurance method will come back say the letter is not in the word even when it is...can someone help me? Thanx in advance...
class CharacterRecurrance{
private int i=0;
private int occur=0;
void inString(String s, char n){
if(i<s.length()){
if(s.charAt(i)==n)
System.out.println("Yes, the letter" + " " + n + " " + "is present");
else{
i++;
inString(s,n);
else System.out.println("No, the letter" + " " + n + " " + "is not present");
void occurance(String s, char n){
if(i < s.length()){
if(s.charAt(i)==n){
occur++;
i++;
occurance(s,n);
else{
i++;
occurance(s,n);
else System.out.println("The letter" + " " + n + " " + "appears" + " " + occur + " " + "times");
void removeLetter(String s, char n){
if(i < s.length()){
if(s.charAt(i)==n){
s = s.replace(s.charAt(i),' ');
i++;
removeLetter(s,n);
else{
i++;
removeLetter(s,n);
else System.out.println(s);
class Program3_10{
public static void main(String[] a) {
CharacterRecurrance find = new CharacterRecurrance();
String word = "mississippi";
char letter = 's';
find.inString(word, letter);
System.out.println();
find.occurance(word, letter);
System.out.println();
find.removeLetter(word, letter);
}Or make it zero in the last step of each function. Like this-void occurance(String s, char n){
if(i < s.length()){
if(s.charAt(i)==n){
occur++;
i++;
occurance(s,n);
else{
i++;
occurance(s,n);
else{
System.out.println("The letter" + " " + n + " " + "appears" + " " + occur + " " + "times");
i=0; // reset to zero.
} -
Hey guys, I'm a beginner programmer and I'm having a bit of a tough time with arrays. I could really use some help!
What I'm trying to do is roll one die and then record the rolls.
Here is my sample I/O:
How many times should I roll a die?
-> 8
rolling 8 times
2, 1, 5, 6, 2, 3, 6, 5
number of 1's: 1
number of 2's: 2
and so on....
Here is my incomplete code at this moment:
//CountDieFaces.java
import java.util.Scanner;
import java.io.*;
import library.Gamble;
public class CountDieFaces
//prompt for and read in: number of times user wants to roll one die
//simulate rolling a die that many times, counting how many times each face 1 thru 6 comes up
//print out: each roll
//AND the total number of times each face occured and the percentage of the time each face occured.
Scanner scan = new Scanner(System.in);
int[] faceCount= {0,0,0,0,0,0,0};
int dice;
System.out.println("How many times would you like to roll the die?");
int dieCount = scan.nextInt();
int dieRoll = Gamble.rollDie(); // Main calling class method
int count = 1;
while(count < dieCount)
System.out.println(faceCount[count]);
count++;
}Here is the gamble library:
//Gamble.java
package library;
public class Gamble
// returns 1, 2, 3, 4, 5, or 6
public static int rollDie()
int dieRoll = (int)(Math.random()*6)+1;
return dieRoll;
}and here are the errors I have so far:
----jGRASP exec: javac -g CountDieFaces.java
CountDieFaces.java:19: <identifier> expected
System.out.println("How many times would you like to roll the die?");
^
CountDieFaces.java:19: illegal start of type
System.out.println("How many times would you like to roll the die?");
^
CountDieFaces.java:25: illegal start of type
while(count < dieCount)
^
CountDieFaces.java:25: > expected
while(count < dieCount)
^
CountDieFaces.java:25: ')' expected
while(count < dieCount)
^
CountDieFaces.java:26: ';' expected
^
CountDieFaces.java:27: illegal start of type
System.out.println(faceCount[count]);
^
CountDieFaces.java:27: ';' expected
System.out.println(faceCount[count]);
^
CountDieFaces.java:27: invalid method declaration; return type required
System.out.println(faceCount[count]);
^
CountDieFaces.java:27: ']' expected
System.out.println(faceCount[count]);
^
CountDieFaces.java:27: ')' expected
System.out.println(faceCount[count]);
I'm really confused with how a the gamble library gets put into the array, so any help is appreciated! Also if anyone could explain the errors to me, I would really appreciate it.
thanks in advance,
wootens
Edited by: Wootens on Oct 18, 2010 8:55 PMD'oh!
Thanks you guys, fixed that. Although I'm having trouble with storing the die roll in the array. Any suggestions?
java.io.*;
public class CountDieFaces
//prompt for and read in: number of times user wants to roll one die
//simulate rolling a die that many times, counting how many times each face 1 thru 6 comes up
//print out: each roll
//AND the total number of times each face occured and the percentage of the time each face occured.
public static void main(String[] args)
Scanner scan = new Scanner(System.in);
int[] faceCount= {0,0,0,0,0,0};
int dice;
System.out.println("How many times would you like to roll the die?");
int dieCount = scan.nextInt();
int dieRoll = rollDie(); // Main calling class method
int count = 0;
while(count < dieCount)
System.out.println(faceCount[dieRoll]);
count++;
public static int rollDie()
int dieRoll = (int)(Math.random()*6)+1;
return dieRoll;
}Wootens -
Help with a Program I am writing! Please!
Hello All,
This is my first post...I hope to find some answers to my program I am writing! A couple things first - I am 17, and have designed a comp. science class for myself to take while a senior in high school, since there was not one offered. My end of the 2nd term project is to write a program that encompasses the information I have learned about for the past two terms. I know the very basics, if that. Please help!
My program involves the simple dice throwing program, 'Dice Thrower' by Kevin Boone. The full text/program write out can be found at:
http://www.kevinboone.com/PF_DiceThrower-java.html
I am hoping to add a part to this program that basically tells the program if the dice show doubles, pop up a little GUI window that says "You are a Winner! You Got Doubles!"
I was thinking as I finished chapter 7 in my text book, that either an 'if/else' or 'switch' statement might be the right place to start.
Could someone please write me a start to the program text that I need to add to 'Dice Thrower', or explain what I need to do to get started! Thank you so much, I really appreciate it.
Erick DeVore - Eroved Kcireimport java.applet.Applet;
import java.awt.*;
import java.awt.event.*;
import javax.swing.JLabel;
import javax.swing.JFrame;
import java.awt.FlowLayout;
import java.awt.Color;
public class DiceThrower extends Applet
Die die1;
Die die2;
public void paint (Graphics g)
die1.draw(g);
die2.draw(g);
g.drawString ("Click mouse anywhere", 55, 140);
g.drawString ("to throw dice again", 65, 160);
public void init()
die1 = new Die();
die2 = new Die();
die1.setTopLeftPosition(20, 20);
die2.setTopLeftPosition(150, 20);
throwBothDice();
// Erick's Program Insert below
public class WinnerGui extends JFrame;
public WinnerGui();
super ("You Are The Winner with GUI");
Container c = getContentPane();
c.setBackground(Color.lightGray);
c.setLayout(new FlowLayout());
c.add(new JLabel("You're a Winner! You Got Doubles!"));
//End Erick's Program insert
DiceThrowerMouseListener diceThrowerMouseListener =
new DiceThrowerMouseListener();
diceThrowerMouseListener.setDiceThrower(this);
addMouseListener(diceThrowerMouseListener);
public void throwBothDice();
die1.throwDie();
die2.throwDie();
repaint();
class Die
int topLeftX;
int topLeftY;
int numberShowing = 6;
final int spotPositionsX[] = {0, 60, 0, 30, 60, 0, 60};
final int spotPositionsY[] = {0, 0, 30, 30, 30, 60, 60};
public void setTopLeftPosition(final int _topLeftX, final int _topLeftY)
topLeftX = _topLeftX;
topLeftY = _topLeftY;
public void throwDie()
numberShowing = (int)(Math.random() * 6 + 1);
public void draw(Graphics g)
switch(numberShowing)
case 1:
drawSpot(g, 3);
break;
case 2:
drawSpot(g, 0);
drawSpot(g, 6);
break;
case 3:
drawSpot(g, 0);
drawSpot(g, 3);
drawSpot(g, 6);
break;
case 4:
drawSpot(g, 0);
drawSpot(g, 1);
drawSpot(g, 5);
drawSpot(g, 6);
break;
case 5:
drawSpot(g, 0);
drawSpot(g, 1);
drawSpot(g, 3);
drawSpot(g, 5);
drawSpot(g, 6);
break;
case 6:
drawSpot(g, 0);
drawSpot(g, 1);
drawSpot(g, 2);
drawSpot(g, 4);
drawSpot(g, 5);
drawSpot(g, 6);
break;
void drawSpot(Graphics g, final int spotNumber)
g.fillOval(topLeftX + spotPositionsX[spotNumber],
topLeftY + spotPositionsY[spotNumber], 20, 20);
class DiceThrowerMouseListener extends MouseAdapter
DiceThrower diceThrower;
public void mouseClicked (MouseEvent e)
diceThrower.throwBothDice();
public void setDiceThrower(DiceThrower _diceThrower)
diceThrower = _diceThrower;
}That was what I have dwindled it down to, using my knowledge, as well as others' expertise...however I am listening to what you say, and get these messages when I try to compile in the CMD:
line 63 - illegal start of expression (carrot at p in public)
line 63 - ; expected (carrot at c in class)
line 63 - { expected (carrot at ; at end of line)
line 65 - illegal start of expression (carrot at p in public)
line 83 - <identifier> expected (carrot as: (this) ) -- I don't even know what that means ^
line 84 - invalid method declaration; return type required (carrot at a in add)
line 84 - <identifier> expected (carrot like this: [see below])
addMouseListener(diceThrowerMouseListener);
^
line 84 - ) expected (carrot is one place over from previous spot [see above]
line 93 - illegal start of expression (carrot at p in public)
I know this seems like a lot of errors, but believe it or not, I actually had it up in the high teens and was able to fix some of them myself from going by previous examples, as well as looking things up in my text book. If anyone has any suggestions concerning the syntax errors of the code, please please let me know and I will work my hardest to fix them...thank you all so much for helping.
Erick -
Help with Dice program.
Hi People!
This is the homework my professor assigned for me.
Assignment 2: Write a program that rolls two dice 1000 times, counting the number of box cars (two sixes) that occur, in object-oriented way. (In other words, do not make all your code in one main() method. Use classes and objects.) Use a overloaded constructors.
I have to use two classes for it. One of is the Dice(Below), and the other would be the client
This is what I have for the dice part so far.
public class DiceServer {
public static void main (String[] args)
final int ROLLS = 1000;
int Boxcars = 0, num1, num2;
Die die1 = new Die();
Die die2 = new Die();
for (int roll = 1; roll <= ROLLS; roll++)
num1 = die1.roll();
num2 = die2.roll();
if (num1 == 6 && num2== 6)
Boxcars++;
System.out.println("Number of rolls: " + ROLLS);
System.out.println("Number of Box Cars: " + Boxcars);
I'm getting an error about the symbol not being resolved, and it's pointing at "Die die1 = new Die();". Can someone please help me. Thank you.
Also, can someone plaese get me started on the Client Class. ThanksHi,
I've gotten pretty far with this program thanks to all your help but I've got another question.
My program so far has been able to display the result of rolling 2 six sided dice 1000 times. I've used Boxcars.java as my Client and Die.java as my overloaded constructor. Now I want to display the number of Boxcars(Double six)by rolling a six-sided die and a 20 sided die together.
My question is would I code that in Boxcars.java or Die.java.
Thank you!!!
Boxcars.java
public class BoxCars {
public static void main (String[] args)
final int ROLLS = 1000;
int Boxcars = 0, num1, num2;
Die die1 = new Die();
Die die2 = new Die();
for (int roll = 1; roll <= ROLLS; roll++)
num1 = die1.roll();
num2 = die2.roll();
if (num1 == 6 && num2== 6)
Boxcars++;
System.out.println("Number of rolls: " + ROLLS);
System.out.println("Number of Box Cars: " + Boxcars);
Die.java
public class Die {
private final int MIN_FACES = 4;
private int numFaces;
private int faceValue;
public Die ()
numFaces = 6;
faceValue = 1;
public Die (int faces)
if (faces < MIN_FACES)
numFaces = 6;
else
numFaces = faces;
faceValue = 1;
public int roll ()
faceValue = (int) (Math.random() * numFaces) + 1;
return faceValue;
public int getFaceValue()
return faceValue;
************************************************************ -
Need help with basic program.....!
I've to write a program that generates a random number, which the user has to try and guess, after each guess they're told whether it's too high or too low etc., I've gotten this far, however, the user has only 10 guesses.... In my program I've used a while loop and the user gets an infinite number of guesses, I know I'm supposed to use a for loop, but can't seem to get it to work properly. Also, when the user guesses the number, the program then has to print out how many guesses it took, and I have no idea how to get it to do this AT ALL!!! I'd really appreciate some help with this, thanks v. much!!!!
I've to write a program that generates a random
number, which the user has to try and guess, after
each guess they're told whether it's too high or too
low etc., I've gotten this far, however, the user has
only 10 guesses.... In my program I've used a while
loop and the user gets an infinite number of guesses,
I know I'm supposed to use a for loop, but can't seem
to get it to work properly. Also, when the user
guesses the number, the program then has to print out
how many guesses it took, and I have no idea how to
get it to do this AT ALL!!! I'd really appreciate some
help with this, thanks v. much!!!!Hey not every book covers every aspect of Java (if you haven't got a book and don't want to buy 1 i recommend an online tutorial) If u want the user to have an infinate number of guesses, use an infinate while loop. Put this in a file called app.java:
import java.applet.Applet;
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
public class app extends Applet implements ActionListener
JLabel lbl=new JLabel("Guess a number between 0 and 10:");
JTextField txtfield=new JTextField(20);
JButton button=new JButton("Guess...");
JLabel lbl2=new JLabel();
int randomnumber=Math.round((float)Math.random()*10);
public void init()
add(lbl);
add(txtfield);
add(button);
button.addActionListener(this);
public void actionPerformed (ActionEvent e)
String s=new String("");
s+=randomnumber;
if (e.getSource().equals(button) && txtfield.getText().equals(s))
setBackground(Color.white);
setForeground(Color.black);
lbl2.setText("Got it!");
add(lbl2);
validate();
else
setBackground(Color.white);
setForeground(Color.black);
if (Integer.parseInt(txtfield.getText())>randomnumber)
lbl2.setText("Too High!");
else
lbl2.setText("Too Low!");
add(lbl2);
validate();
Then create a HTML document in the classes folder:
<HTML>
<HEAD>
<TITLE>APPLET</TITLE>
</HEAD>
<BODY>
<HR>
<CENTER>
<APPLET
CODE=app.class
WIDTH=400
HEIGHT=200 >
</APPLET>
</CENTER>
<HR>
</BODY>
</HTML>
It will do what you wish. If you want to have more then 10 numbers to guess, for example 100, do this:
int randomnumber=Math.round((float)Math.random()*100);
Does that answer your question? -
hi,
i need some help with this piece of code. wat would it output to the screen?
int [] theArray = { 1,2,3,4,5};
for (int i = 1; i < 5; i++)
System.out.print(theArray * i + "; ");
would it output 1 * 1;
2 * 2;...
thanx
devinOk...
1] Your index into the array is off by 1 - remember that array indexing starts from 0.
2] You cannot multiply an array object. The contents? fine , go ahead but NOT the array
so your output should be something like:
operator * cannot be applied to int[] :d
try
int[] theArray = {0,1,2,3,4,5};
for(int i = 1;i<6;i++)
System.out.print(theArray*i+";");
giving you an output of 1;4;9;16;n...
if you were looking for the output stated change
System.out.print(theArray*i+";");
to
System.out.print(theArray[i]+"*"+i+";");done... -
Need Help with Array.sort and compare
Hi
I have a big problem, i try to make a java class, where i can open a file and add new words, and to sort them in a right order
Ok everthing works fine, but i get a problem with lower and upper cases.
So i need a comparator, i tried everything but i just dont understand it.
How do i use this with Array.sort??
I hope someone can help meOkay, you want to ignore case when sorting.
There are two possibilities: Truly ignore case, so that any of the following are possible, and which one you'll actually get is undefined, and may vary depending on, say, which order the words are entered in the first place:
English english German german
english English german German
English english german German
english English German german
The second possibility is that you do consider case, but it's of lower priority--it's only considered if the letters are the same. This allows only the first two orderings above.
Either way, you need to write a comparator, and call an Arrays.sort method that takes both array and Comparator.
The first situation is simpler. Just get an all upper or lower case copy of the strings, and then compare thosepublic int compare(Object o1, Object o2) {
String s1 = ((String)o1).toUpper();
String s2 = ((String)o1).toUpper();
return s1.compareTo(s2);
} You'll need to add your own null check if you need one.
For the second way, your comparator will need to iterate over each pair of characters. If the characters are equal, ignoring case, then you compare them based on case. You pick whether upper is greater or less than lower.
Of course, the need to do this assumes that such a method doesn't alrady exist. I don't know of one, but I haven't looked. -
I really need some help with the following two methods:
- A method fillArray() that accepts an integer array as a parameter and fills the array with random integers. I am encouraged to use Math.random()
- A method printArray() that accepts an integer array as a parameter and outputs every element of the array to the standard output device. I am encouraged to use print instead of println in order to save paper.
Thanks so much for your help.public class Test {
public static void main (String[] args){
int[] intArray = new int[20];
fillArray(intArray);
printArray(intArray);
public static void fillArray (int[] intArray){
for (int i = 0; i < intArray.length; i++) {
intArray[i] = (int) (Math.random()*1000);
public static void printArray (int[] intArray){
for (int i = 0; i < intArray.length; i++) {
int i1 = intArray;
System.out.print(i1+",");
System.out.println(""); -
I'm having some problems with my program. It's a binary tree of names but they aren't organized in any particular order and names can repeat. I built the tree correctly but the problem comes in writing a method. I have to write method pathLength with parameters (Treenode, Person (object), and level (starts as 1) ) it returns the longest path from the TreeNode to the node containing the Person. My code seems to work for most of the names on the tree except for one or two and I can't see why. Here's my code:
public int pathLength(TreeNode t, String name, int level)
if(t==null)
return 0;
else if((name.equals(t.getValue())&&(t.getLeft()==null||t.getRight()==null)))
return level;
return max(pathLength(t.getLeft(),name,level+1),pathLength(t.getRight(),name,level+1));
max is a method that returns the larger of two integers (x,y)
next I have to write method rootPath with parameter (TreeNode) that returns the longest path from the root of the tree to a node containing the same as root.........this method I'm not even close on but I would have thought that all I needed to do for code was
public int rootPath(TreeNode t)
return pathLength(t,(String)t.getValue(),1);
so that it would go from t to another node with t's value.........maybe its because pathLength doesn't workand also another part of my program that i'm having trouble with is a different tree which has letters as leaves and null's as parents etc. To get to a letter u follow a code of 1's and 0's so 1110 would be left left left right and u'd get a letter.....i wrote the code that i'll get a code and i can find the letter but now i hafta make it go opposite so i type a letter and it gives the code
they provided me with the main code
public String wordToBits(String word)
String result="";
for(int k=0; k<word.length(); k++)
result+=wordToBitsHelper(word.substring(k,k+1),myRoot,"""");
return result;
i hafta write method private String wordToBitsHelper(String s, Treenode t, String pathSoFar)
and im really lost
Maybe you are looking for
-
Emulating Oracle Applications Environment in BI Publisher Enterprise Server
Hi there, I think I know what the answer is going to be to this post but for reasons outwith my control I'm trying to understand if there is a workaround to achieve the resultant report output I require. Background Oracle E-Business on Demand 11.5.10
-
Save a Switcher from Going Back to a PC Tonight!
I've been using PCs for as long as I can remember. With parallels available to run Windows XP within OS X, I finally made the switch and bought an MBP. Two weeks and one exchange later, I'm planning to return my MBP tonight and buy a VAIO SZ or Think
-
I posted this over in the Classic forum...but it's rather dead over there and I fear it may not be seen for a while...so here's the problem... I'm running Quark 4 in Classic and having trouble with fonts. Though the fonts are on my computer, and in t
-
How do I migrate settings in Illustrator after updating from CC to CC 2014?
I have just updated from CC to CC 2014 and was not given the option to migrate settings for Illustrator as I was for Photoshop. How can I do this?
-
Asset Balances for MTD, QTD, YTD
Hi Everyone, I have report requirement for Assets with 4 columns in the ff. order: Beg Bal, Additions, Deletions, End Bal. These 4 columns shall be computed for Month-To-Date, Qtr-To-Date, Year-To-Date period. Guys, any idea on what tables should I g