Java 比较和排序数组列表中的字符串

Java 比较和排序数组列表中的字符串,java,string,algorithm,sorting,Java,String,Algorithm,Sorting,我想根据输入字符串对字符串数组进行排序,例如,我们有这些文本 "united state" "sample united" "united kingdom" "greece" "uzbakestan" 因此,当用户输入united时,输出将为: "united state" "united kingdom" "sample united" "greece" "uzbakestan" 它首先显示united并对它们进行排序。使用此集合。排序(您的数组列表)如果使用ArrayList,则必须使用

我想根据输入字符串对字符串数组进行排序,例如,我们有这些文本

"united state"
"sample united"
"united kingdom"
"greece"
"uzbakestan"
因此,当用户输入
united
时,输出将为:

"united state"
"united kingdom"
"sample united"
"greece"
"uzbakestan"

它首先显示united并对它们进行排序。

使用此集合。排序(您的数组列表)

如果使用ArrayList,则必须使用集合对数组列表进行排序

例如:

Collections.sort(arrayList);
要查看:

    Iterator<String> i = a.iterator();
    while(i.hasNext()) {
        System.out.println(i.next());
    }
Iterator i=a.Iterator();
while(i.hasNext()){
System.out.println(i.next());
}

我不确定我是否完全理解您的目的-但是如果您想先打印与输入字符串“最相似”的字符串:

您可能希望创建一个将根据第三个字符串[您的输入字符串]的值在两个字符串之间进行比较的字符串

使用这个比较器-您可以使用。

如果这是一个
ArrayList
类似于标题suggest[冲突标题和问题正文]-您可以使用我想,首先您要列出包含输入关键字的所有项目。然后将其他项目添加到列表中

for(int i=0;i<mylist.size();i++) {
   //splitting item by space to match with the inputText
   String[] myString = mylist.get(i);
   for(int j=0;j<myString.length;j++) {
      if(myString[j].equals(inputText)) {
        myNewList.add(mylist.get(i));
        break;
      }

    }

用于(int i=0;该示例没有以任何方式排序。您的排序标准是什么?除非从一开始就删除了我的字母顺序,否则上面的示例都不会排序。我认为如果用户提供关键字,他希望更改排序结果。因此,如果用户提供了unite,则应以使用unite的字符串的方式更改结果d应该在结果的顶部,依此类推。按帝国大小排序?失业数字?@Jasonw:是的,完全正确。我怎么做?他不想要自然顺序排序,这里应该使用自定义比较器。请使用比较器进行自定义排序,并使用str_数组。Sort()他不想要自然顺序排序,这里应该使用自定义比较器。@amit:是的,我需要cutom comparatorI,但我不能使构造函数添加SortString ValueComparator MyCommand Comparator=new Comparator(){public int compare(command lhs,command rhs){//TODO自动生成的方法存根返回0;};@Ata:如果使用匿名内部类-您可能希望将
inputString
作为
final
变量[在创建自定义比较器的方法中]-并在需要时访问它[您不需要将其传递给构造函数]。我会创建一个新的[非匿名]类-但它显然也适用于您的方法-只需在方法中将
inputString
声明为final,并直接访问它。
for(int i=0;i<mylist.size();i++) {
   if(!mynewList.contains(mylist.get(i))) {
     myNewList.add(mylist.get(i));
   }

 }