java - 使用 for 循环对字符串进行排序
问题描述
我正在尝试使用两个 for 循环按字母顺序对字符串列表进行排序。
具体来说,我不允许使用java.util.Collections.sort()
.
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.add(temp);
str.set(str.get(temp),str.get(i));
str.set(i, str.get(j));
}
}
}
这是我到目前为止所拥有的。这个想法是它可以与任何列表一起使用。我不断遇到的主要问题是如何添加一个临时字符串以将数据保留在i
and中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);
此外,您所做的并不是真正的冒泡排序:-)
维基百科有关于最常见算法/问题的精彩文章,是开始编程的绝佳资源,例如https://en.wikipedia.org/wiki/Bubble_sort
欢迎来到编程群!
推荐阅读
- angular - 如何使用 Angular JS 生成访问令牌以访问合作伙伴中心 API?
- javascript - 刷新 vue 应用程序在开发和生产中出现“Cannot GET /route”错误,尽管设置
- java - 如何在 Selenium 中将文本转换为语音?
- laravel - 将值放入对象中并获得旧值的最佳方式
- python - 如何在 Yolo v3 中获取视频文件长度
- c++ - 比较 C++ 中的双精度,同行评审
- php - 未捕获的错误:在使用 __callStatic 时不在对象上下文中使用 $this
- java - Java 升级 8 到 11 导致 LDAPS 连接出现问题(连接或出站已关闭)
- spring-boot - Spring Boot 2.1.1 中缺少 AspectJ 依赖项
- rcpp - 从同一 cpp 文件中的函数调用 Rcpp 函数