Итак, вот моя проблема: я пытаюсь сделать вид вставки сортировки. На самом деле, я пытаюсь найти ArrayList с помощью алгоритма двоичного поиска и найти, куда вставить строку. То, что у меня до сих пор вроде работает. Это в частичном порядке. Я был поставлен в тупик на этом больше недели! Ниже мой код:
РЕДАКТИРОВАТЬ: Извините, я думаю, что я запутал людей. Мой вопрос, как я могу отредактировать это, чтобы работать должным образом. Он вставляет мои объекты в частичном порядке. Мне нужно, чтобы это был полный порядок! Я не знаю, где это происходит. Я анализирую слишком много данных, чтобы отладить эту строку и для строки.
private void insertOrdered(int frontParameter, int endParameter, TwitterData user) {
int front = frontParameter;
int end = endParameter;
int mid = (front+end)/2;
if (front > end) {
if (user.getUsername().equalsIgnoreCase(users.get(mid).getUsername()))
users.get(mid).addTweet(user.getTweets().get(0));
else
users.add(mid, user);
}
if (user.getUsername().toLowerCase().compareTo(users.get(mid).getUsername().toLowerCase()) < 0) {
insertOrdered(front, mid - 1, user);
}
else if (user.getUsername().toLowerCase().compareTo(users.get(mid).getUsername().toLowerCase()) > 0) {
insertOrdered(mid + 1, end, user);
}
else { //will get to this case if the usernames being tested are equal
users.get(mid).addTweet(user.getTweets().get(0)); //if the user is already in the list, just add the tweet. It is assumed that the user being passed in will only have one tweet tied to their information hence the get(0)
}
}
Просто для некоторой справочной информации, я использую это для ArrayList имен пользователей Twitter и связанных с ними твитов. Переданный параметр user является объектом TwitterData класса, который я написал. Для всех интенсивных целей все, что вам нужно знать, могу ли я получить имя пользователя и список твитов, которые пользователь, возможно, написал в Твиттере. Ниже приведен тестовый вывод первых 100 пользователей списка, чтобы показать вам, что я имею в виду под его частичной работой.
Вывод первых 100 пользователей:
4colorrebellion
50BandBuckie
2996mymy
20120040
_littlethugg
_IndyaWithaWHY_
__PrettyMistake
__Mannyy24
_MikeFishh
_NikeDeshaun_
_TinaBeana
_PrincesaNessa
_LoveInPaaaris
_Victoria_Ortiz
adriannstacey21
ahansen718
action_packed_
Alicemegan93
alexgracehunter
AlishaaShaffer
arowsey_15
Amy_Vee
allycolucci
AmbiTious___xO
aguss__A
averybrownn
babbyyy_itsREAL
ando775
bburns1117
amberdorais
AshMarieMonica
Ashton_45
_SarahJustine
BlasianCocaine
belieber_pride
AyeeIts_DeeDee
BrianHodges
BritFranceNews
Big_Red911
BiteMy_SlimJim
BadGirlYon
Cemonee_Allisse
cathy_riveros
byby_35
CEOSIXX
busybeekatie
ChelsiKatherine
BOOBtifulJohnny
Coolie_Mackin
coralreefer420
CrashBandaCooch
codyalexander23
cubanrice
corrinea143
Cyndi_R82
danny728_
dbangin
ASNievera
DeAndre_Johnson
Deion_Hungry
DStudmuffin
cowellEmma
expired_data
Dr_drew_V93
feather_hinn
DominiqueQ2
getbackamistake
Da_Dirty_Dern
dudeimisaac
elennatalbert
evillurking
fANNcy_
covolm4
HimOverHere
DameLush
erinnnroach
freaky_fahfah
freesugardaddy
elhotpocket
FollowMandy
HaileyySorenson
DomoNinjaSwagg
IamSalinaScott
fredthemarauder
IAmTHATguy_1
facucuellar
iDream_Mindless
hirschy_kiss94
freshmoney5
HannahMcC_x
GarrieBrocato
AyeeeCali
iSexTattedDudes
Illumi_Lani
itsyunk
jahzzi
Jamie_Hill101
iHeartAudiooooX
jaymethornley
JasonMyers18
Еще одна вещь, последний случай работает правильно. Я исключил любые виды двойных пользователей, отправляемых в ArrayList.
Есть идеи?