Java 对集合进行排序时找不到符号错误。排序()
编辑:已解决!谢谢大家。 我正在尝试使用Comparator对Java中的一个集合进行排序,但运气不好。这是我的密码:Java 对集合进行排序时找不到符号错误。排序(),java,collections,arraylist,Java,Collections,Arraylist,编辑:已解决!谢谢大家。 我正在尝试使用Comparator对Java中的一个集合进行排序,但运气不好。这是我的密码: public class Collections_Exercise { public void runExercise(){ String[] emailArray = {"andy@test.com","paul@test.com","cindy@test.com", "robert@test.com", "bill@test.com", "an
public class Collections_Exercise {
public void runExercise(){
String[] emailArray = {"andy@test.com","paul@test.com","cindy@test.com", "robert@test.com", "bill@test.com", "andy@test.com", "cindy@test.com"};
Collection<String>emails = new ArrayList<String>(Arrays.asList(emailArray));
processEmails(emails);
// 5. Call processEmails with a sorted list of emails with duplicate email addresses removed
System.out.println("Sorted list of emails with no dups!");
class alphabeticalComparator implements Comparator<String>
{
@Override
public int compare(String email1, String email2)
{
int result = email1.toString().compareTo(email2.toString());
return result;
}
}
Collections.sort(emails, new alphabeticalComparator()); //Doesn't work, can't find collections.sort() symbol
processEmails(emails);
private void processEmails(Collection<String> emails)
{
for( String s : emails)
System.out.println(s);
}
public static void main(String [] args)
{
new Collections_Exercise().runExercise();
}
}
公共类集合\u练习{
公开演习({
字符串[]emailArray={”andy@test.com","paul@test.com","cindy@test.com", "robert@test.com", "bill@test.com", "andy@test.com", "cindy@test.com"};
Collectionemails=newArrayList(Arrays.asList(emailArray));
处理电子邮件;
//5.调用processEmails,将删除重复电子邮件地址的电子邮件排序列表
System.out.println(“没有DUP的电子邮件排序列表!”);
类AlphacalComparator实现Comparator
{
@凌驾
公共整数比较(字符串email1、字符串email2)
{
int result=email1.toString().compareTo(email2.toString());
返回结果;
}
}
Collections.sort(电子邮件,新的字母比较器());//不起作用,找不到Collections.sort()符号
处理电子邮件;
私人作废处理电子邮件(收集电子邮件)
{
用于(字符串s:电子邮件)
系统输出打印项次;
}
公共静态void main(字符串[]args)
{
新集合_Exercise().runExercise();
}
}
不管我怎么做,我都无法让Collections.sort()正常工作。有什么建议吗
编辑:这是终端给我的错误:
Collections_Exercise.java:58: cannot find symbol
symbol : method sort(java.util.Collection<java.lang.String>,alphabeticalComparator)
location: class java.util.Collections
Collections.sort(emails, new alphabeticalComparator());
Collections\u Exercise.java:58:找不到符号
符号:方法排序(java.util.Collection,字母比较器)
位置:类java.util.Collections
Collections.sort(电子邮件、新的字母比较器());
采用的是列表
,而不是集合
List<String> emails = new ArrayList<String>(Arrays.asList(emailArray));
List emails=newarraylist(Arrays.asList(emailArray));
这是因为有些类实现的集合不能被任意重新排序。有些类的存储机制依赖于策略性地放置的元素(如HashSet),而另一些类具有预先确定的排序顺序(如TreeSet)
他说:
集合层次结构中的根接口…有些是有序的,有些是无序的。JDK[仅]提供了更具体的子接口(如Set和List)的实现。此接口通常用于…需要最大通用性的地方
因此,为什么在转换构造函数(调用约定)和方法系列中,您只将集合视为参数。采用列表,而不是集合
List<String> emails = new ArrayList<String>(Arrays.asList(emailArray));
List emails=newarraylist(Arrays.asList(emailArray));
这是因为有些类实现的集合不能被任意重新排序。有些类的存储机制依赖于策略性地放置的元素(如HashSet),而另一些类具有预先确定的排序顺序(如TreeSet)
他说:
集合层次结构中的根接口…有些是有序的,有些是无序的。JDK[仅]提供了更具体的子接口(如Set和List)的实现。此接口通常用于…需要最大通用性的地方
因此,为什么在转换构造函数(调用约定)和方法族等位置,您只将集合视为参数。您缺少一个
}
处理后的电子邮件(电子邮件)
你必须从
Collection<String>
收藏
到
列表
你错过了一个
}
处理后的电子邮件(电子邮件)
你必须从
Collection<String>
收藏
到
列表
尝试更换:
原创的
Collection<String>emails = new ArrayList<String>(Arrays.asList(emailArray));
Collectionemails=newarraylist(Arrays.asList(emailArray));
新的
ListString>emails=newarraylist(Arrays.asList(emailArray));
按照Java API Collections.sort accept List进行排序。尝试替换:
原创的
Collection<String>emails = new ArrayList<String>(Arrays.asList(emailArray));
Collectionemails=newarraylist(Arrays.asList(emailArray));
新的
ListString>emails=newarraylist(Arrays.asList(emailArray));
根据Java API Collections.sort accept List.在Java中,根据定义,类型为Collection
的容器没有顺序,因此无法排序。只能对其子容器List
进行排序
因此,该方法需要一个List
类型的对象作为第一个参数,但您提供的是一个集合
改变
Collection<String> emails = new ArrayList<String>(Arrays.asList(emailArray));
Collection emails=newarraylist(Arrays.asList(emailArray));
进入
列出电子邮件=。。。
在Java中,根据定义,类型为集合的容器没有顺序,因此无法排序。只能对其子列表进行排序
因此,该方法需要一个List
类型的对象作为第一个参数,但您提供的是一个集合
改变
Collection<String> emails = new ArrayList<String>(Arrays.asList(emailArray));
Collection emails=newarraylist(Arrays.asList(emailArray));
进入
列出电子邮件=。。。
List emails=Arrays.asList(emailArray);
Collections.sort(电子邮件、新的字母比较器());
List emails=Arrays.asList(emailArray);
Collections.sort(电子邮件、新的字母比较器());
Collections.sort()
需要的是列表
而不是集合
,请参见。因此,而不是
Collection<String>emails = new ArrayList<String>(Arrays.asList(emailArray));
Collectionemails=newarraylist(Arrays.asList(emailArray));
应该是
final List<String>emails = Arrays.asList(emailArray);
final-Listemails=Arrays.asList(emailArray);
Collections.sort()
需要的是列表
而不是集合
,请参见。因此,而不是
Collection<String>emails = new ArrayList<String>(Arrays.asList(emailArray));
Collectionemails=newarraylist(Arrays.asList(emailArray));
应该是
final List<String>emails = Arrays.asList(emailArray);
final-Listemails=Arrays.asList(emailArray);
请