Question about an Array of objects

I'm writing a program that is supposed to store a String and a double in an array of CustomerBill objects. I just want to know if I am doing it correctly. Heres my code:
public static CustomerBill[] getCustomerData()
         //Local variables
         int numCust;     //The number of customers being processed
         double amt;
         String customer;        
      //Ask for the number of customers to be processed.
         System.out.print("How many customers are to be processed? ");
         numCust = Integer.parseInt(keyboard.nextLine());
         CustomerBill[] array = new CustomerBill[numCust];
         //Ask user to enter the data.
         System.out.println("\nPlease enter customer data when prompted.");
         System.out.println("Enter customer's last name, then first name.");
      //Get the customer data from user.
         for (int i = 0; i < array.length; i++)
           array[i] = new CustomerBill();
           System.out.print("\nCustomer name:  ");
           customer = keyboard.nextLine();       
           array.setName(customer);
System.out.print("Total bill amount: ");
amt = Double.parseDouble(keyboard.nextLine());
array[i].setAmount(amt);
System.out.println();
return array;

Write a test() method that:
(1) Gets an array of CustomerBills using getCustomerData()
(2) In a for-loop print out each of the CustomerBills. It will help if
CustomerBill has a toString() method but, in any case you should be
able to see that the aray contains the right number of nonnull elements.
Then write a main() method that calls the test() method.
[Edit] And then run it! You may need to do this a few times and check
what happens with "crazy" data.

Similar Messages

  • Urgent query about copying array of objects to html item

    I have an urgent query about how I can display an array of objects on a html form. The only suitable html item I can see for this is a drop down box. Ideally a combo box would be preferable but I cant find anything like this. Basically the display item needs to contain 3 columns of data and has to display a number of rows. Can anyone tell me how to copy the array of values into a drop down box?

    Here is all the code from my jsp. It keeps returning null:
    <%@ page language="java" %>
    <%@ taglib uri="/WEB-INF/struts-bean.tld" prefix="bean" %>
    <%@ taglib uri="/WEB-INF/struts-html.tld" prefix="html" %>
    <%@ page import="java.util.*, java.lang.*" %>
    <html:html locale="true">
    <head>
    <meta HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=windows-1252"/>
    <link rel="stylesheet" type="text/css" name="timesheet" href="stylesheets/timesheet.css"></link>
    <script type="text/javascript" language="javascript" src="javascript/sum.js"></script>
    <title><bean:message key="eng.title"/></title>
    <html:base/>
    </head>
    <body bgcolor="white">
    <table border="0" width="100%">
    <tr>
    <td width="30%"><html:img page="/images/PwC_logo.gif"/></td>
    <td width="40%" class="applicationTitleCell">
    <div align="center">
    <bean:message key="application.title"/>
    </div>
    </td>
    <td width="30%"> </td>
    </tr>
    </table>
    <center>
    <html:form action="/selectEng" focus="engSearchNumber">
    <table border="0" width="100%">
    <tr>
    <td width="30%"></td>
    <td width="20%" align="center"> <b> <bean:message key="eng.prompt.engSearchNumber"/> </b> </td>
    <td width="20%" align="center"> <b> <bean:message key="eng.prompt.clientSearchName"/> </b> </td>
    <td width="40%">   </td>
    </tr>
    <tr>
    <td width="30%"></td>
    <td width="20%" align="center"> <html:text property="engSearchNumber" size="20" maxlength="9" onchange='<%= "SearchLength(this)" %>' onkeypress="return NumberOnly()" /> </td>
    <td width="20%" align="center"> <html:text property="clientSearchName" size="20" maxlength="20" onchange='<%= "SearchLength(this)" %>'/> </td>
    <td width="30%">   </td>
    </tr>
    </table>
    <table border="0" width="100%">
    <tr>
    <td width="30%"></td>
    <td width="40%" align="center"><html:image property="findButton" src="images/Find.gif" alt="Find"/></td>
    <td width="30%">   </td>
    </tr>
    <jsp:useBean id="selectEngForm" scope="session" class="Time.SelectEngForm" />
    <% if (selectEngForm.getEngSearchNumber() != null) { %>
    <tr>
    <td width="30%"></td>
    <td width="40%" align="center"><select name="engListing" size="5">
    <%= selectEngForm.getEngListing() %>
    </select></td>
    <td width="30%">   </td>
    </tr>
    <% } else if (selectEngForm.getClientSearchName()!=null){ %>
    <tr>
    <td width="30%"></td>
    <td width="40%" align="center"><select name="engListing" size="5">
    <%= selectEngForm.getEngListing()%>
    </select></td>
    <td width="30%">   </td>
    </tr>
    <% } %>
    <%=request.getParameter("engListing")%>
    </table>
    <br><br>
    <table border="0" width="100%">
    <tr>
    <td width="30%"></td>
    <td width="11%" align="center"> <html:image property="addButton" src="images/Add.gif" alt="Add the selected engagement to the timesheet"/> </td>
    <td width="11%" align="center"> <html:image property="cancelButton" src="images/Cancel.gif" alt="Cancel"/> </td>
    <td width="30%">   </td>
    </tr>
    </table>
    </html:form>
    </center>
    <br>
    <center><html:link forward="timesheet"> <html:img src="images/Back.gif" border="0"/> </html:link></center>
    </body>
    </html:html>

  • Question about SWING and ActionEvent Object.

    When using a graphical component like a JButton,
    one typically adds an ActionListener Object to that button using the
    addActionListener method,
    in order for a click/appropriate action to execute desired Java code.
    One's desired code is within one's own ActionListener Object,
    which implements an appropriate interface and the equivalent of
    that interface's actionPerformed method.
    -How does one program one's own ActionEvent Object,
    and register that object (myActionEvent) with the java virtual machine
    such that your OWN event object is fired, instead of the
    default action?
    -Does instantiating one's appropriate ActionEvent object
    "fire" it as an event?

    Zac1234 wrote:
    When using a graphical component like a JButton,
    one typically adds an ActionListener Object to that button using the
    addActionListener method,
    in order for a click/appropriate action to execute desired Java code.Only for components that accept ActionListeners of course. This won't work with a JLabel for instance or any random "graphical component".
    -How does one program one's own ActionEvent Object,
    and register that object (myActionEvent) with the java virtual machine
    such that your OWN event object is fired, instead of the
    default action?Please explain exactly what you're trying to do here. Perhaps it's just me, but I'm not sure I understand what you mean by programming your own ActionEvent Object. An ActionEvent object can be simply created like any other object and by using the appropriate constructor (the API can help), but I don't think that you're talking here about ActionEven objects -- the parameter of the actionPerformed method, are you? Please give details as they are important here.
    -Does instantiating one's appropriate ActionEvent object
    "fire" it as an event?No, but again I'm stumped as to exactly what you're trying to do here.
    Finally, let's keep this discussion here, but next time, you will probably want to ask your Swing questions in the Swing forum.
    Best of luck.

  • Question about C array initialization

    I understand that the statement
    char string[] = "chars";
    initializes string[5] to 0 ('\000'). My question is does the statement
    char *strings[] = { "string1", "string2", "string3" };
    initialize strings[3] to (void *) 0, i.e. NULL? I can't find the answer to this question in the ansi standard. GCC seems to tack on a NULL pointer at the end (even with the -ansi and -pedantic-errors flags), which is really convenient for finding the boundary, but I'm not sure whether it's a GCC thing or an official C thing. I see where the standard talks about terminating char arrays initialized by a string literal with a null byte, but it doesn't talk about the analogous case with arrays of pointers.
    Last edited by nbtrap (2012-06-25 03:18:20)

    nbtrap wrote:
    Not necessarily. A declaration like:
    char arr[3] = "str";
    doesn't get null-terminated.
    It doesn't get null-terminated because you don't leave enough room in the array for the null character. "char arr[3]" can only contain 3 characters, the same way that "char arr[2] = "str" will only contain 2. The second example generates a warning whereas the first does not, but only because it is very common to work with non-null-terminated strings.
    nbtrap wrote:
    And besides, my point is that initializing strings[3] *would* make sense for the same reason that intializing
    char foo[] = "bar";
    with a terminating null byte *does* make sense.
    I know that arrays of pointers are not the same. My questions assumes that much. The fact of the matter is, however, GCC terminates pointer arrays of unknown size with a null pointer, and my question is simply "is this an ansi C thing or a GCC thing?".
    In fact, it seems that GCC terminates all arrays of unknown size that are explicitly initialized with the appropriate number of null bytes. For example:
    struct tag { int i; char c; char *str; } tags[] = {
    { 1, 'a', "string1" },
    { 2, 'b', "string2" },
    { 3, 'c', "string3" }
    initializes tags[3] to sizeof (struct tag) null bytes. Try it for yourself.
    I get the following:
    test.c
    #include <stdio.h>
    int
    main(int argc, char * * argv)
    int i;
    char *strings[] = { "string1", NULL, "string3"};
    for (i=0;i<5;i++)
    printf("strings[%d]: %s\n", i, strings[i]);
    return 0;
    output
    strings[0]: string1
    strings[1]: (null)
    strings[2]: string3
    Segmentation fault
    test2.c
    #include <stdio.h>
    #include <string.h>
    int
    main(int argc, char * * argv)
    int i;
    struct tag {int i; char c; char *str;};
    struct tag null;
    memset(&null, 0, sizeof(struct tag));
    struct tag tags[] =
    { 1, 'a', "string1" },
    // { 2, 'b', "string2" },
    null,
    { 3, 'c', "string3" }
    for (i=0;i<5;i++)
    printf(
    "tags[%d]: (%p) %1d %c %s\n",
    i, tags + i, tags[i].i, tags[i].c, tags[i].str
    return 0;
    output
    tags[0]: (0x7fffd2df4e80) 1 a string1
    tags[1]: (0x7fffd2df4e90) 0 (null)
    tags[2]: (0x7fffd2df4ea0) 3 c string3
    tags[3]: (0x7fffd2df4eb0) 0 (null)
    Segmentation fault
    The above behavior appears to conflict.
    Given that string constants in C are defined as null-terminated, i.e. "str" is equivalent to "{'s', 't', 'r', '\0'}", the assignment 'arr[] = "str"' explicitly includes a null terminator. The other examples above do not include such a terminator. Even if it would be convenient sometimes, the standard should adopt a minimally invasive approach. It's easy to add a NULL at the end of an array declaration, but impossible to remove an extra element from such a declaration.
    This may be informative too:
    test3.c
    #include <stdio.h>
    #include <string.h>
    int
    main(int argc, char * * argv)
    char str[] = "test";
    char *strings[] = {"string1", NULL, "string3"};
    struct tag {int i; char c; char *str;};
    struct tag null;
    memset(&null, 0, sizeof(struct tag));
    struct tag tags[] =
    { 1, 'a', "string1" },
    // { 2, 'b', "string2" },
    null,
    { 3, 'c', "string3" }
    printf(
    "str\n size: %lu\n length: %lu\n"
    "strings\n size: %lu\n length: %lu\n"
    "tags\n size: %lu\n length: %lu\n",
    sizeof(str), sizeof(str)/sizeof(char),
    sizeof(strings), sizeof(strings)/sizeof(char *),
    sizeof(tags), sizeof(tags)/sizeof(struct tag)
    return 0;
    output
    str
    size: 5
    length: 5
    strings
    size: 24
    length: 3
    tags
    size: 48
    length: 3
    The string length (actual number of chars in array) is reported as 5 ('t', 'e', 's', 't', '\0'), which is expected. The array of strings and tags are both reported as 3, even though you can access a null value after the last initialized index of the tags array. If that null value was really supposed to be there, it should be accounted for using sizeof, just as the null character is in the string.
    Maybe the ultimate null element of the tags array is some artefact of memory alignment.

  • Newbie question about entity and view objects

    Hi everyone,
    My first ADF application in JDeveloper is off to a difficult start. Having come from a forms background, I know that it is necessary avoid using post-query type lookups in order to have full filtering using F11/Ctrl+F11. This means creating an CRUDable view and getting as much of the lookup data as possible into the view without losing the ability to modify the data. In JDeveloper, I do not know how to build my data model to support that. My thought was to start with a robust updateable view as my main CRUD EO and then create a VO on top of that with additional EOs or VOs. But, I have found that I cannot add VOs to another VO. However, if I link the VOs then I have a master-detail which will not work for me.
    For example, I have two joins to CSI_INST_EXTEND_ATTRIB_V shown in the queries below and need to have that show in the table displaying the CRUD VO’s data. It seemed that the best way to do this is to create a CSI_INST_EXTEND_ATTRIB_V entity object and view object. The view object would have two parameters, P_INSTANCE_ID and P_ATTRIBUTE name. Both the building and the unit are needed on the same record, and this is not a master-detail even though it might look that way. (A master-detail data control will not work for me because I need all this data to appear on the same line in the table.) So, I need help figuring out the best way to link these to the main (CRUD) view; I want as much of this data as possible to be filterable.
    select
    cieav.attribute_value
    from
    csi_inst_extend_attrib_v cieav
    where cieav.instance_id = p_instance_id
    and cieav.attribute_code = 'BUILDING NAME'
    select
    cieav.attribute_value
    from
    csi_inst_extend_attrib_v cieav
    where cieav.instance_id = p_instance_id
    and cieav.attribute_code = 'UNIT NAME'
    Ultimately, I need to display a ton of data in each record displayed in the UI table, so a ton of joins will be needed. And, I need to be able to add records using the UI table also.
    James

    Hi Alejandro,
    Sorry if I caused confusion with my first post. What I had in mind assumed that I could have a single CSI_INST_EXTEND_ATTRIB_V EO with a BuildingVO and UnitVO on top of it. So, I wrote the queries individually to show how I would invoke each view. When I realized that confused the issue, I rewrote the query to explain things better.
    Now having seen your 2 queries. You need to create 2 EO. One for each table. Then create an association between the 2 aeO (this will be the join you are talking about). Then, you need to create a VO based on one of the EO and after you can modify and add the second EO (in here you select the join type).
    After your done with this, youll have 1 VO that supports CRUD in both tables.
    There were three tables in the query: CIEAV_BUILDING, CIEAV_UNIT, and T -- the main CRUD table. When you say that I should create two EOs, do you mean that they are to be for CIEAV_BUILDING and CIEAV_UNIT? Or, CIEAV and T? Assuming CIEAV and T, that sounds like it would allow me to show my building or unit on the record but not both.
    By the way, everything is a reference except for the main CRUD table.
    Look forward to hearing from you. Thanks for your help (and patience).

  • Question about performance (entities & data object)

    Hello:
    I know that this can be, maybe, a silly question, but I've got the doubt
    I get a local reference to a entity ( myEntityLocal ) and I'm going to get many values from it.
    For example
    myEntityLocal.getId();
    myEntityLocal getName();
    myEntityLocal.getAddr();
    etc etc
    My question is
    Would be better, in performance terms, to fill all fields into a data object myEntityData ) and retrieve them from it ?
    I mean
    myEntityData = myEntityLocal.getData() // where getData() calls getter methods on myEntityLocal
    myEntityData.getId();
    myEntityData.getName();
    myEntityData.getAddr();
    I think the result is the same because is a local reference, but I've got that doubt
    Thanks and regards

    This will be san=me if you are considering the Local interfaces.
    For remote interface(like accessing EJB from Servlets resides in diffferent Apps Server) use the DTO(data Transfer Object) patterns.
    Regards
    Sushil

  • Question about handing classes in Objective-C

    Greetings -- I'm pretty new to Objective-C. I do have a few apps out in the app store, but they were simple one-form apps where I was able to dump everything into the main class and be happy with it.
    This new project I'm working on, is huge in comparison. Over 25 views, accessible through TableView driven menus.
    I was able to get all of the menus working, each launching a separate view NIB file (so far, just a label to show me that it's done, but I got that part working.)
    Now what I'm trying to do, is add a "click" sound when a row is selected. But I'm wanting to do this in a separate class, so each .m file can instantiate it's own version of the logic instead of having the same code 29 times.
    So, this is what I've done:
    Click.h
    #import <Foundation/Foundation.h>
    #import <AudioToolbox/AudioToolbox.h>
    @interface Click : NSObject
    SystemSoundID soundID;
    -(void) playClick;
    @end
    Click.m
    #import "Click.h"
    @implementation Click
    -(id) init
    self = [super init];
    NSString *path = [[NSBundle mainBundle] pathForResource:@"click" ofType:@"wav"];
    AudioServicesCreateSystemSoundID((CFURLRef)[NSURL fileURLWithPath:path], &soundID);
    return self;
    -(void) playClick
    AudioServicesPlaySystemSound (soundID);
    @end
    RootViewController.h
    #import <UIKit/UIKit.h>
    #import "Click.h"
    @interface RootViewController : UITableViewController <UITableViewDelegate, UITableViewDataSource>
    NSArray *controllers;
    Click *clicker;
    @property (nonatomic, retain) NSArray *controllers;
    @property (nonatomic, retain) Click *clicker;
    @end
    RootViewController.m
    #import "RootViewController.h"
    @implementation RootViewController
    @synthesize controllers, clicker;
    - (void)viewDidLoad
    Click *newClicker = [[Click alloc] init];
    clicker = newClicker;
    [newClicker release];
    self.title = @"Main Menu";
    - (void)dealloc {
    [controllers release];
    [clicker release];
    [super dealloc];
    #pragma mark Table View Delegate Methods
    -(void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
    [clicker playClick];
    I cut out the code pieces regarding the TableView that I know works, and tried showing only the parts that I've added to make the sound.
    What I've tried, is when the RootViewController is created, it has a SystemSoundID type variable defined with it named clicker. Then as part of "viewDidLoad", instantiate an instance of the class and have it automatically populate the variable "soundID". Then during "didSelectRowAtIndexPath", I want the "playClick" method of "clicker" to be run, but at this point the app seems to get caught in some sort of perma-loop, and I have to "STOP"/"Home" out of it.
    I'm hoping the problem is my rookie-status at using Objective-C objects, and the solution jumps out at you veterans, and then whatever problem I am having won't be duplicated when I create additional classes that I'd want to merge into my ViewController logic.
    Hope I've made everything clear. If anyone has questions, I'll be checking for replies
    Thanks.

    Dragon's Nest wrote:
    Is it preferred to init a copy and assign it like you did above?
    Yes, it's an accepted pattern which you'll see in most of the sample apps. Asnor's code works just as well in this case, and it might always work for you if you stick to that same pattern. However if you were working on a team and everyone else used the more common pattern it might cause a problem. For example, this code would cause a memory leak:
    @property (nonatomic, retain) Click *clicker; // interface
    self.clicker = [[Click alloc] init]; // implementation
    The above is the flip side of your original code. In this case, because we're not releasing the newly alloced object, its retain count is +2 after the setter retains it.
    There are other advantages to the accepted pattern. Suppose you weren't assigning the new object to an ivar but only using the object in that one block of code. Should you then release it? Yes. Will you remember? Well, if you're using the pattern, you'll always release it. If you always release the local pointer regardless of whether it gets retained elsewhere, you're much less likely to have a memory leak. How bout the case where you return the pointer (i.e. alloc an object and return it's address from that method)? In that case you just autorelease it. So whoever called the method needs to retain the returned object if it needs to be used after the current event cycle.
    Either way, immediate release or autorelease, you're always releasing an alloced object in the same block of code.
    Memory management can easily get out of control without following consistent patterns. Alloc->retainBySetter->release is the accepted pattern for Cocoa. Your original code meant to use the correct pattern, but you just forgot that clicker=object isn't the same as self.clicker=object because the latter retains the object. Once you've consistently used the correct pattern for awhile, you'll almost never make that mistake.
    Also, is there any difference in calling it in the following two ways:
    @property (nonatomic, retain) Click *clicker; // <-- must be considered to answer this question
    @synthesize clicker;
    [clicker playClick];
    [self.clicker playClick];
    In the above case there's no difference since the getter synthesized for that property declaration will simply return the value of the ivar (i.e. the address of the retained Clicker object). But in the general case, there certainly could be a difference. If the property was atomic, for example, the results could be different. Of course there will definitely be a difference if you wrote a custom getter that did something more than the default.
    Is there a rule or convention re when to use the getter and when to use the ivar directly? Not that I know of. I think you just need to be aware of what the getter does when deciding whether to use the dot notation. This is a point you might want to research a little more, though. Maybe someone here with more experience in Obj-C or Cocoa will comment.
    In fact a few of the experts in this forum advise against ever using dot notation. They feel it was invented to crash newbie programs. If you never use dot notation the difference between these two lines is much easier to see:
    clicker = newClicker;
    [self setClicker:newClicker];
    But once again, if you stick to the same pattern all the time, it's much harder to make a mistake.
    - Ray

  • Question about using arrays

    I have a web page written with combination of Front Page and Java is included. I have 4 drop down boxes which work in sequence. select an item in the first, it then asks you to select in the second box, then 3rd then in the final 4th box. This was set up using arrays. My question is how can i put a hyperlink to the items in the last drop down box? I want the last selection to go to a URL. can you tell me what code i need to use and where to insert it? I assume it has to go into the array somewhere. Thanks, Tom

    selection to go to a URL. can you tell me what code
    i need to use and where to insert it? Not without you clarifying your question and showing the relevant bits of your code, and possibly not even then.
    When you post code, please use[code] and [/code] tags as described in Formatting tips on the message entry page. It makes it much easier to read.
    I assume it
    has to go into the array somewhere. I assume it doesn't, because code doesn't go into arrays.

  • Question about nulling array elements

    Hi guys. What I want to do is null some array elements. Like:          
         for (int i = 1; i <= arrayA; i++) {
         for (int j = 1; j <= arrayB; j++) {
         Object o = class.getElem(i,j);
    o = null;
    Why this doesnt work? Thanks in advance

    You are only setting your local reference "o" to null. Whatever is in the class at index "i , j" is not affected--o is just a copy of the reference (not a copy of the object). You'll need something like:
    class.setElemNull(i,j);Where that method would set the appropriate value in your class to null.

  • Question about resizing a 'decorative' object

    Hi all
    Please bear with me this is tricky to describe.
    I have on a form I have obtained from formcentral an attractive banner: its just a nice colour nothing else but it spans the entire width of the form and is about 2 inches high.
    I wanted to copy & paste this and then shorten the height to 0.5 inches, but I have no height or width handles, just the four corner handles so the resizing maintains the aspect ration and I'm left with a copy which is the correct height but half or less of the width I need.... so I do multiple copies of these just to get coverage across the width of the form.
    This seems daft but I cannot see how to do this slicker....
    Anybody know please?
    thanks
    george

    Hi all
    Please bear with me this is tricky to describe.
    I have on a form I have obtained from formcentral an attractive banner: its just a nice colour nothing else but it spans the entire width of the form and is about 2 inches high.
    I wanted to copy & paste this and then shorten the height to 0.5 inches, but I have no height or width handles, just the four corner handles so the resizing maintains the aspect ration and I'm left with a copy which is the correct height but half or less of the width I need.... so I do multiple copies of these just to get coverage across the width of the form.
    This seems daft but I cannot see how to do this slicker....
    Anybody know please?
    thanks
    george

  • Question about sorting arrays

    Hi,
    I have posted information from an one-dimensional array on to a list widget. When a user selects an item in the list(index value = 3), presses the delete button, the item would be removed. Likewise, the element of the array at index value 3 would also be removed (or set to null?).
    The trouble I am having is, how would you move up the elements that are subsequent to the element index value 3? For example, moving element index value 4 up to 3, 5 up to 4, 6 up to 5....etc.?
    Here is my code:
    public void delete()
    list.delItem(list.getSelectedIndex());
    student[list.getSelectedIndex()]=null;
    Thanks alot!!

    It's usually faster to use System.arraycopy() to close up the "hole" when removing something from an array: public void delete() {
        int index = list.getSelectedIndex() ;
        list.delItem(index) ;
        // if not removing last item... close up hole...
        if (index < (student.length-1)) {
            System.arraycopy(student, index+1, student, index, student.length - 1 - index) ;
        // clear out space made empty at end of array
        student[student.length-1] = null ; // or whatever represents 'empty' in your student[]

  • Question about the Arrays utility

    Can I use the util.Arrays library to sort multi dimentional arrays? I dont see methods for that in the documentation, so I am guessing no.

    Yes it is. what kind of a comparetor would I need to set up for an int[][] array which I wish to sort in descending order according to the second dimension?
    Also, can you copy an array without using a for loop? I know that doing a = b (where a and b are both arrays of the same type) just passes a a referene to b.

  • Question about Java Array Primative Type.

    Say I create an Array of type Integer, like this:
    Integer [] myArray = new Integer[10];
    I now have an Integer array, 10 cells big.
    However, I have now learned that I can do the following:
    String [] [] [] stringArray = new String [3][3][3];
    I can create higher dimensional arrays!
    Is there any limit to the degree/dimension such an array may be,
    and does the Array class presently support any methods, like getDimension,
    to check the number of indices on an array where the number of indicies/dimensions
    are a priori unknown?

    And as far as I know, their is not limit to the depth of the arrays as long as you stay within the memory boundaries.In practice the depth is limited by the range of a Java 'int', because the array descriptor in the .class file is a String starting with the appropriate number of [ characters.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               

  • Question about string array?

    Hello,
    When passing Stting arrays to a function, is there anyto test if the array is emply?
    void testFucntion(String[] test){
    }

    Or test the array is null.
    if (test == null || test.length == 0)

  • A question about a resizeable loaded object

    Guys...
    I was searching in the web on how to make an automatic resizeable screen, so it feets on many devices regardless of their size and I found a tutorial that adds the picture to the Flash library and resizes it depending on the screen size...
    Now, I have deleted the library object and changed the "bitmap" var from the tutorial for a "Loader" one, so the picture isnt in the library...
    My only problem is that when you try the swf, the picture is anywhere in the screen and only fits on it after you expand or decrease the its size...
    So how can the picture be on its right spot in the first time?
    (The tutorial had as an event trigger a Mouse Click... I have changed it for a timer event and while my pic was in the library it worked fine, but now I have to resize the windows to make it work)
    Here is the code:
    //Main Class
    package{
        import org.display.OffsetResize;
        import flash.display.Sprite;
        import flash.display.Bitmap;
        import flash.display.StageAlign;
        import flash.display.StageScaleMode;
        import flash.events.Event;
        import flash.events.MouseEvent;
        import flash.utils.Timer;
        import flash.events.TimerEvent;
        import flash.display.Loader;
        import flash.net.URLRequest;
        public class Main extends Sprite{
            private var _bg:OffsetResize;
            private var t:Timer = new Timer(0,0);
            public function Main():void{
                if(stage) init();
                else addEventListener(Event.ADDED_TO_STAGE,init);
            private function init(e:Event=null):void{
                stage.scaleMode=StageScaleMode.NO_SCALE;
                stage.align=StageAlign.TOP_LEFT;
                var picture:Loader = new Loader();
                picture.load(new URLRequest("FIN1.jpg"));
                _bg=new OffsetResize(picture,OffsetResize.MIN);
                stage.addChildAt(_bg,0);
                _bg.stage.align = StageAlign.TOP_LEFT;
                t.addEventListener(TimerEvent.TIMER, resizeada);
                t.start();
            private function resizeada(TimerEvent):void{
                _bg.offsetType=_bg.offsetType==OffsetResize.MAX?OffsetResize.MIN:OffsetResize.MAX;
                t.stop();
    //OffsetResize class
    package org.display{
        import flash.display.Sprite;
        import flash.display.DisplayObject;
        import flash.events.Event;
        public class OffsetResize extends Sprite{
            public static const MAX:String="max";
            public static const MIN:String="min";
            private var _offsetType:String;
            public function OffsetResize($child:DisplayObject,$offsetType:String="max"):void{
                _offsetType=$offsetType;
                addChild($child);
                if(stage) init();
                else addEventListener(Event.ADDED_TO_STAGE,init);
                addEventListener(Event.REMOVED_FROM_STAGE,end);
            private function init(e:Event=null):void{
                stage.addEventListener(Event.RESIZE,stageResize);
                stageResize();
            private function stageResize(e:Event=null):void{
                var px:Number=stage.stageWidth/width;
                var py:Number=stage.stageHeight/height;
                var div:Number=_offsetType=="max"?Math.max(px,py):Math.min(px,py);
                width*=div;
                height*=div;
                x=(stage.stageWidth/2)-(width/2);
                y=(stage.stageHeight/2)-(height/2);
            private function end(e:Event):void{
                stage.removeEventListener(Event.RESIZE,stageResize);
            public function set offsetType(type:String):void{
                _offsetType=type;
                if(stage) stageResize();
            public function get offsetType():String{ return _offsetType; }
    Thanks in advance!!!

    try:
    //Main Class
    package{
        import org.display.OffsetResize;
        import flash.display.Sprite;
        import flash.display.Bitmap;
        import flash.display.StageAlign;
        import flash.display.StageScaleMode;
        import flash.events.Event;
        import flash.events.MouseEvent;
        import flash.utils.Timer;
        import flash.events.TimerEvent;
        import flash.display.Loader;
        import flash.net.URLRequest;
        public class Main extends Sprite{
            private var _bg:OffsetResize;
            public function Main():void{
                if(stage) init();
                else addEventListener(Event.ADDED_TO_STAGE,init);
            private function init(e:Event=null):void{
                stage.scaleMode=StageScaleMode.NO_SCALE;
                stage.align=StageAlign.TOP_LEFT;
                var picture:Loader = new Loader();
    picture.contentLoaderInfo.addEventListener(Event.COMPLETE,resizeada);
                picture.load(new URLRequest("FIN1.jpg"));
            private function resizeada(e:Event):void{
              _bg=new OffsetResize(picture,OffsetResize.MIN);
                stage.addChildAt(_bg,0);
                _bg.stage.align = StageAlign.TOP_LEFT;
                _bg.offsetType=_bg.offsetType==OffsetResize.MAX?OffsetResize.MIN:Offs etResize.MAX;

Maybe you are looking for