Java 使用for循环对字符串进行排序
我尝试使用两个for循环按字母顺序对字符串列表进行排序 具体来说,我不允许使用Java 使用for循环对字符串进行排序,java,sorting,bubble-sort,Java,Sorting,Bubble Sort,我尝试使用两个for循环按字母顺序对字符串列表进行排序 具体来说,我不允许使用java.util.Collections.sort() for(int i=0;i
java.util.Collections.sort()
for(int i=0;i
这是我到目前为止所拥有的。这个想法是,它可以与任何列表一起工作。我一直遇到的主要问题是如何添加一个临时字符串,以便将数据保留在
I
和j
下面是代码。很高兴看到你在来这里之前自己尝试了一些东西。还有其他比气泡排序更快的排序技术。如果可能的话,请试一试
List<String> str = new ArrayList<>();
str.add("bbbb");
str.add("aaaa");
str.add("cccc");
for(int i = 0; i < str.size(); i++)
{
for (int j = i+1; j < str.size(); j++)
{
if(str.get(i).compareTo(str.get(j))< 0)
{
String temp = str.get(i);
str.set(i, str.get(j));
str.set(j, temp);
}
}
}
System.out.println(str); //this will print cccc,bbbb,aaaa
List str=new ArrayList();
str.add(“bbbb”);
str.add(“aaaa”);
str.add(“cccc”);
对于(int i=0;i
您不想将临时字符串添加到正在排序的arraylist中-您应该使用它来交换两个值:
String temp = str.get(i);
str.set(i, str.get(j)); // this overwrites str.get(i),
// hence the need for temp
str.set(j, temp);
而且,您所做的并不是真正的冒泡排序:-)
Wikipedia有很多关于最常见的算法/问题的文章,是一个很好的开始编程的资源
欢迎来到编程组 首先要了解的是Java和JavaScript是不一样的:)通常说,它们就像汽车和地毯一样相关。目的是交换
i
和j
处的值。所以get
和set
都很好。但是,add
不属于此处。您没有向列表中添加任何内容,而是更改i
和j
处的值。在任何情况下,请向你的老师要求澄清。他/她比可能的情况更能帮助你。
String temp = str.get(i);
str.set(i, str.get(j)); // this overwrites str.get(i),
// hence the need for temp
str.set(j, temp);