Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/330.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/sorting/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 使用for循环对字符串进行排序_Java_Sorting_Bubble Sort - Fatal编程技术网

Java 使用for循环对字符串进行排序

Java 使用for循环对字符串进行排序,java,sorting,bubble-sort,Java,Sorting,Bubble Sort,我尝试使用两个for循环按字母顺序对字符串列表进行排序 具体来说,我不允许使用java.util.Collections.sort() for(int i=0;i

我尝试使用两个for循环按字母顺序对字符串列表进行排序

具体来说,我不允许使用
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);