ACM —— 1007
来源:互联网 发布:涙は知っている 编辑:程序博客网 时间:2024/06/05 05:09
解题代码:
import java.util.ArrayList;import java.util.Collections;import java.util.Iterator;import java.util.List;import java.util.Scanner;public class Main {static class Node implements Comparable {String str;int id;int sortN;public Node(String str, int id ,int sortN) {this.id = id;this.sortN = sortN;this.str = str;}@Overridepublic int compareTo(Object o) {Node another = (Node) o;if (another.sortN == sortN) {return (another.id < id) ? 1 : ((another.id == id) ? 0 : -1);} else {return (another.sortN < sortN) ? 1 : -1;}}}public static void main(String[] args) {Scanner stdin = new Scanner(System.in);int len = stdin.nextInt();int num = stdin.nextInt();String dna;int sortN;List<Node> nodeList = new ArrayList<Node>();for (int i = 0; i < num; i ++) {dna = stdin.next();sortN = getSortN(dna, len);nodeList.add(new Node(dna, i, sortN));}Collections.sort(nodeList);for (Iterator<Node> l = nodeList.iterator(); l.hasNext();) {System.out.println(l.next().str);}}private static int getSortN(String dna, int len) {int sortCount = 0;for (int i = 0; i < len; i++) {for (int j = i+1; j < len; j++) {if (dna.charAt(i) > dna.charAt(j)) {sortCount++;}}}return sortCount;}}
Comparator 和 Comparable
用于对集合对象或数组对象进行排序。
区别 :
1.只要实现Comparable 接口的对象直接就成为一个可以比较的对象,但是需要修改源代码
2.用Comparator 的好处是不需要修改源代码, 而是另外实现一个比较器, 当某个自定义的对象需要作比较的时候,把比较器和对象一起传递过去就可以比大小了, 并且在Comparator 里面用户可以自己实现复杂的可以通用的逻辑,使其可以匹配一些比较简单的对象,那样就可以节省很多重复劳动了。
Iterator
Java中的Iterator功能比较简单,并且只能单向移动:
(1) 使用方法iterator()要求容器返回一个Iterator。第一次调用Iterator的next()方法时,它返回序列的第一个元素。注意:iterator()方法是java.lang.Iterable接口,被Collection继承。
(2) 使用next()获得序列中的下一个元素。
(3) 使用hasNext()检查序列中是否还有元素。
(4) 使用remove()将迭代器新返回的元素删除。
Iterator是Java迭代器最简单的实现,为List设计的ListIterator具有更多的功能,它可以从两个方向遍历List,也可以从List中插入和删除元素。
0 0
- ACM —— 1007
- ACM第三次练习—1007
- ACM——Java
- 博弈论——acm
- 博弈论——acm
- ACM——1029
- ACM——1236
- 博弈论——acm
- 博弈论——acm
- 博弈论——acm
- ACM —— Argus
- 博弈论——acm
- ACM——滑雪
- ACM—课程总结
- ACM 学习心得 ——2014年ACM暑假集训有感
- ACM首战——山东省第八届ACM程序设计比赛
- ACM模板——LCS
- acm——贪心算法
- 欢迎使用CSDN-markdown编辑器
- textare的固定大小的属性
- 这几天的面试
- 子类和父类的关系
- spring mvc源码分析(整个流程)
- ACM —— 1007
- hdi2189基础dp
- 加密 xmlrpc 客户端
- GridView、Repeater 列表截取字符用...代替
- eclipse的new server里tomcat7.0根本选不上解决方法
- textare的固定大小的设置
- QQ内置浏览器参数大全
- 11292 - Dragon of Loowater(贪心)
- Android GestureDetector手势识别与多点触控探究