You still have some of the same problems as far as having parameters with the same names as the data members:
public void setScoreArrayList(ArrayList<Score> scoreList) {
scorelist = scorelist;
}
public highscore(String name){
this.name = name;
this.scorelist = new ArrayList <Score>(); // this is a Array List
}
setScoreArray looks like it's just a typo. O.K. You have an ArrayList. It looks like each player has an ArrayList of Score, so there'll be one object of type highscore for each player. I don't see anything that involves a vector, just the ArrayList. I also don't see any function that adds a single Score to the ArrayList in this class, which I think you need. I see a removeScore, but no addScore. So I am imagining that you want the Scores to reside in the ArrayList called scorelist. I assume this ArrayList called scorelist contains only one player's Scores. You have a couple of choices. Regardless, I think you need to add an addScore function to your class. You can either only keep track of the top five scores or keep track of all of them, but only later display the top five. You can sort them as you go ar sort them later. I would sort them as you go, so I'd always have a sorted ArrayList. When you insert a new Score into addScore, store it in its correctly sorted spot in the ArrrayList. To do this, I would use an InsertionSort.
Now, if you want to display the top five Scores of all the players total, so one score comes from Joe, two, from Bob, two from Sue, I think that that's a lot harder the way you have your classes set up, but certainly doable. Again, the way you have set up your highscore class leads me to believe that your highscore object comes from a group of scores of one individual player, not a mix of players.