ARTS-Week 3
第三周的 ARTS,继续加油。
Algorithm
Palindrome Number
Determine whether an integer is a palindrome. An integer is a palindrome when it reads the same backward as forward. Example
Input: 121
Output: true
Input: -121
Output: false
Input: 10
Output: false
解法1
思路是计算反转后的值,然后与输入值进行比较。
class Solution {
public boolean isPalindrome(int x) {
if (x < 0) {
return false;
}
int tail = 0;
int reverse = 0;
int backx = x;
while(x > 0) {
tail = x % 10;
reverse = reverse * 10 + tail;
if ((reverse - tail) % 10 != 0) {
return false;
}
x = x / 10;
}
if (backx == reverse) {
return true;
}
else {
return false;
}
}
}
Review
Latest Trends In Software Test Automation
文章主要介绍了自动化测试未来的发展趋势。
Tip
怎样给 List
成员排序
需求:将基站 enodeb 插入到一个链表中,并按照基站的分数高低进行排序
一种方法是让 List
中的成员实现 Comparable
接口,这里在类 enodeb
实现接口方法 compareTo
,然后调用 Collections.sort(list)
进行排序。
public class Enodeb implements Comparable<Enodeb> {
private String ip;
private Double score;
public Enodeb(String ip, Double score) {
this.ip = ip;
this.score = score;
}
public String getIp() {
return ip;
}
public void setIp(String ip) {
this.ip = ip;
}
public Double getScore() {
return score;
}
public void setScore(Double score) {
this.score = score;
}
public int compareTo(Enodeb enodeb) {
return this.getScore().compareTo(enodeb.getScore());
}
@Override
public String toString() {
return "Enodeb{" +
"ip='" + ip + '\'' +
", score=" + score +
'}';
}
}
public class TestEnodeb {
public static void main(String[] args) {
Enodeb e1 = new Enodeb("1.1.1.1", 93.2);
Enodeb e2 = new Enodeb("1.1.1.2", 95.2);
Enodeb e3 = new Enodeb("1.1.1.2", 91.2);
List<Enodeb> list = new ArrayList<Enodeb>();
list.add(e1);
list.add(e2);
list.add(e3);
Collections.sort(list);
System.out.println(list);
}
}
前一种方法有其局限性,对于一个给定的类,只能够实现 Comparable
接口一次,如果在一个集合中需要按照一个维度排序,在另一个集合中却要按照另一个维度排序,该怎么办?另外,如果需要对一个类的对象排序,而这个类的创建者又没有实现 Comparable
接口,又该怎么办呢?
在这种情况下,可以通过将 Comparator
对象传递给 Collections.sort()
告诉该函数使用定义的 compare
方法对类对象进行排序。
public class TestEnodeb {
public static void main(String[] args) {
Enodeb e1 = new Enodeb("1.1.1.1", 93.2);
Enodeb e2 = new Enodeb("1.1.1.2", 95.2);
Enodeb e3 = new Enodeb("1.1.1.2", 91.2);
List<Enodeb> list = new ArrayList<Enodeb>();
list.add(e1);
list.add(e2);
list.add(e3);
Collections.sort(list, new Comparator<Enodeb>() {
@Override
public int compare(Enodeb o1, Enodeb o2) {
return o1.getScore().compareTo(o2.getScore());
}
});
System.out.println(list);
}
}