gpt4 book ai didi

java - 在 Java 中使用二分搜索将字符串插入到 ArrayList 中?

转载 作者:行者123 更新时间:2023-12-01 15:32:07 29 4
gpt4 key购买 nike

所以这是我的问题:我正在尝试进行某种形式的插入排序。实际上,我正在尝试使用二分搜索算法搜索 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)
}
}

仅作为一些背景信息,我将其用于 Twitter 用户名及其相关推文的 ArrayList。传递的参数 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

还有一件事,最后一个 else 情况确实可以正常工作。我已经消除了提交给 ArrayList 的任何类型的双重用户。有什么想法吗?

最佳答案

如果您只是在列表中的任何位置插入元素并调用Collections.sort(),那么这将简单得多,它将需要与您已经完成的工作量相同的工作量计算插入O(n*logn)

关于java - 在 Java 中使用二分搜索将字符串插入到 ArrayList 中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9446459/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com