Java - Creating Object Arrays -


i can't seem work out these object arrays, i'm attempting create list of player names values stored, each integer , multiple strings each.

this i'm working on far, object arrays correct storage package this? error in line 237 when try add player in class addplayer: player[usercount].setname(name);

the error is:- exception in thread "main" index out of bounds.

import java.util.arraylist; import java.util.hashmap; import java.util.list; import java.util.map; import java.util.scanner;  public class playerkarma {      static scanner input = new scanner(system.in);      static private string[] username = {"name1","name2","test","moretesting","fervor","stackoverflow","imported","quaternion","jetstream"};     static private int[] karma = {1000,800,800,5,15,-4,-403,54,11,210};     static private boolean exit = false;     static private int maxkarmachange = 10; //how players karma can change per day.     static player[] userarray = new player[10000];     //arraylist<player> userarray = new arraylist<player>();     static private int usercount = 0;      public static void main(string[] args)      {         while (!exit)         {         system.out.println("");         system.out.println("select option");         system.out.println("1: display player's karma");         system.out.println("3: display player names , karma");         system.out.println("5: add player");          string command = input.nextline();         switch(command)             {             //display player's karma.             case "1": {                 system.out.println("enter player's name: ");                 string inputstring = input.nextline();                 int playerindex = findplayer(inputstring);                  if (playerindex == -1)                     {                     system.out.println("player doesn't exist");                     }                 else //if player exists.                     {                     system.out.println(userarray[playerindex].getname() + " has karma of " + karma[userarray[playerindex].getkarma()]);                     break;                     }                  break;}              //display player names , karma.             case "3": {getallplayerkarma(); sleep(1500); break;}              //add player.             case "5": {                 system.out.println("enter player's name:");                 string inputstring = input.nextline();                  if (usercount > 0) //if there @ least 1 user in database.                 {                 int playerindex = findplayer(inputstring);                  if (playerindex == -1)                     {                     addplayer(inputstring,0);                     }                 else //if player exists.                     {                     break;                     }                 }                 else //if there's no users.                 {                     addplayer(inputstring,0);                 }                 break;}             }         }     }      //class creation players.     public class player     {         public string name;         public int karma;         //public string[] notes = new string[5];          public string getname() {             return name;         }         public void setname(string name) {             this.name = name;         }         public int getkarma() {             return karma;         }         public void setkarma(int karma) {             this.karma = karma;         }     }      private static void getallplayerkarma() {         system.out.println("");         (int k = 0; k < usercount; k++)         {             system.out.println(userarray[k].getname() + " has karma of " + userarray[k].getkarma());         }     }      private static void setallplayerkarma(string karmavalue) {         system.out.println("");         (int k = 0; k < username.length; k++)         {             int parsekarma = integer.parseint(karmavalue);             karma[k] = parsekarma;         }         system.out.println("all karma has been set " + karmavalue);     }      private static void addplayer(string name, int karma) {         //adds new user         player[] player = new player[usercount];         //player[usercount] = new player(usercount);          player[usercount].setname(name);         player[usercount].setkarma(karma);         //userarray[usercount].setname(name);         //userarray[usercount].setkarma(karma);         usercount++;     }  //returns index of player in database. private static int findplayer(string playername) {     int playerindex = -1;      (int j = 0; j < usercount; j++)     {         system.out.println("testing name: " + playername + " against " + userarray[j].getname());         if (playername.equals(userarray[j].getname())) {             playerindex = j;             system.out.println("match");             break;         }         else         {             //system.out.println("no match");         }     }     return playerindex;     }  private static void sleep(int sleep) {     try {thread.sleep(sleep);}     catch(interruptedexception ex) {         thread.currentthread().interrupt();}     }  } 

there 3 problems code:

player[] player = new player[usercount]; player[usercount].setname(name); 

firstly, you're creating new array each time - suspect want populate userarray instead.

secondly, you're creating array of size usercount , trying use element index usercount - that's never going work. array indexes 0-based, element length 3 has valid indexes 0, 1 , 2 example.

thirdly, you're not creating new player object - every element in array null. if fixed index, player[x].setkarma(karma) throw nullpointerexception.

i suspect want method this:

private static void addplayer(string name, int karma) {     player player = new player();     player.setkarma(karma);     player.setname(name);     userarray[usercount] = player;     usercount++; } 

that's fine, until user count exceeds length of array. @ point, should start looking @ list<e> (and arraylist<e> in particular).


Comments

Popular posts from this blog

node.js - Mongoose: Cast to ObjectId failed for value on newly created object after setting the value -

[C++][SFML 2.2] Strange Performance Issues - Moving Mouse Lowers CPU Usage -

ios - Possible to get UIButton sizeThatFits to work? -