为什么';java在Spring框架中是否正确执行if-else语句?
我正试图通过按下“喜欢”按钮,为我的web应用程序创造喜欢任何文章的可能性。这就是它的工作原理:你喜欢某样东西,所以喜欢+,如果你再次喜欢,它会删除你以前喜欢的东西,就像在Youtube上一样,你不能得到无限多的东西。但它不能正常工作。当我已经处于一个喜欢这篇文章的阵营中时,它会再次写信给我,并进行计数器更新。但我会检查数组中的每个用户。发生了什么?多谢各位为什么';java在Spring框架中是否正确执行if-else语句?,java,spring,Java,Spring,我正试图通过按下“喜欢”按钮,为我的web应用程序创造喜欢任何文章的可能性。这就是它的工作原理:你喜欢某样东西,所以喜欢+,如果你再次喜欢,它会删除你以前喜欢的东西,就像在Youtube上一样,你不能得到无限多的东西。但它不能正常工作。当我已经处于一个喜欢这篇文章的阵营中时,它会再次写信给我,并进行计数器更新。但我会检查数组中的每个用户。发生了什么?多谢各位 public void likeProject(User user) { if(users_liked.size() == 0)
public void likeProject(User user)
{
if(users_liked.size() == 0) // If the are no users who liked this article, write this user
{
users_liked.add(user);
setLikes(getLikes() + 1);
}
else // This is for array, which already has users who pressed like button
{
for(int i = 0; i < users_liked.size(); i++)
{
if(!user.getId().equals(users_liked.get(i).getId())) // i liked it before, so my object is in an array, so this shouldn't be executed
{
users_liked.add(user); // Idk why, but this it's executes every time i press the like button. I'm already in an array
setLikes(getLikes() + 1);
}
}
}
}
public void-likeProject(用户)
{
if(users_liked.size()==0)//如果没有喜欢本文的用户,请编写此用户
{
用户添加(用户);
setLikes(getLikes()+1);
}
else//这是针对数组的,已经有用户按下了like按钮
{
对于(int i=0;i
回答:你的情况不对。
if(!user.getId().equals(users_liked.get(i).getId()))
如果类用户列表中有十个用户。对于您检查的用户,将根据上述条件至少检查十次。每次都会得到一个true,并将用户添加到列表中十次
Input user: 11
(Before)User Like List:
[1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
Check 1 != 11, add 11 to the list.
Check 2 != 11, add 11 to the list.
...
Check 10 != 11, add 11 to the list.
Check 11 != 11, pass.
Check 11 != 11, pass.
...
Check 11 != 11, pass.
(After)User Like List:
[1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11]
赵英伟已经指出了问题所在。在我的回答中,我想提出一个代码更正;你可以这样做:
/。。。
否则{
int i=0;
对于(;i
干杯
编辑
为了提高我的回答和您的访问时间:如您所见,如果您使用数组作为数据结构来存储用户对象,您将始终必须遍历整个数组,以确保您要查找的用户对象不在数组中。因此,您总是需要迭代n次,即您的访问时间是O(n)(有n条记录)
要提高访问时间,请使用哈希映射(HashMap)和方法#containsKey(对象键):boolean。无论您有1000万条记录还是200万条记录,只要您的字符串标识符保持唯一,您的访问时间都保持不变O(1).您的user.getId()返回的类型是什么?user.getId()返回什么?user\u喜欢的getId数组包含什么?@Janar id是一个字符串,这个数组包含一个名为User的java类,它有getter和setter,您只需要执行1。检查该用户是否已在“类用户”列表中。2.如果为真,则执行不同的逻辑。3.如果为false,则执行like逻辑(将用户添加到like列表等)