public static List<User> getFriendsList() {
        try {
            //who we're followed by
            long[] followers = twitter.getFollowersIDs(-1).getIDs();

            //who we're following
            long[] friends = twitter.getFriendsIDs(-1).getIDs();

            //temp array of user ids to send to twitter
            long[] temp = new long[100];

            //list of users to return
            List<User> mutual = new ArrayList<User>();

            //keep track of temp array items
            int count = 0;

            for (int i = 0; i < friends.length; i++) {

                boolean found = false; //stop processing when we found a match

                for (int j = 0; j < followers.length && found == false; j++) {
                    if (friends[i] == followers[j]) {
                        found = true;
                        temp[count] = friends[i]; //add user to temp array 
                        count++;
                    }

                    //if array is full push to list and reset array and counter
                    if (count == 99) {
                        mutual.addAll(twitter.lookupUsers(temp));
                        count = 0;
                        Arrays.fill(temp, 0);
                    }
                }
            }

            //send any left in the array to the list
            mutual.addAll(twitter.lookupUsers(temp));

            //sort the list by twitter username
            Collections.sort(mutual, new UsernameComparator());

            return mutual;

        } catch (TwitterException ex) { //error with twitter
            JOptionPane.showMessageDialog(new JFrame(), ex.getErrorMessage(), "Dialog",
                    JOptionPane.ERROR_MESSAGE);
            return null;
        }
    }