The problem here is that in each iteration, you create a new memory location for list and so every time the loop executes, the value of list is overwritten. You can fix this by appending to list instead of changing the value of list in every iteration.
A side note, since Strings are immutable in java, for every iteration of the for loop, new memory will be allocated for list. This is not very efficient. You should instead use StringBuilder which is mutable. It would look like this.
StringBuilder str = new StringBuilder(list);
Then you can append to str :
str.append("any string");
This is equivalent to str + "any string"
Using StringBuilder, memory will be allocated to str only once and all the changes will take in place which is much more efficient. And finally you want to return a String object so you can call the method toString() on the StringBuilder object to convert it back into a String.
So, finally it would look like this :
public String getTANames() {
StringBuilder str = new StringBuilder("");
for(int i = 0; i < TAList.length; i++){
str.append(TAList[i].first + " " + TAList[i].second + ", ");
}
return str.toString();
}