Java复习2019_12
problem1
反思;
- Stack是用add()
- ArrayList也是用add()。
- 有两种写比较的方法,我还是喜欢用下面这一种
- 时间不够了,贴个其他的cmp的写法,以后学习吧传送门
记得补充第二个comparator的写法
记得补充 蓝不大的写法
AC(ArrayList && Comparator)
package test.paper12;
import java.util.*;
import java.util.Comparator;
class ProblemComparator implements Comparator<Integer>{
@Override
public int compare(Integer p1, Integer p2){
return -(Integer.compare(p1, p2));
}
}
public class problem1 {
public static void main(String[] args){
Scanner cin = new Scanner(System.in);
ArrayList<Integer> arr = new ArrayList<Integer>();
int n;
n = cin.nextInt();
for(int i = 2; i*i <= n; i ++ ){
if(n%i==0){
while(n%i==0){
arr.add(i);
n /= i;
}
}
}
if(n>1)arr.add(n);
Collections.sort(arr, new ProblemComparator());
System.out.println();
for(int x: arr){
System.out.print(x+ " ");
}
}
}
AC(再加一个匿名内部类的写法)
package test.paper12;
import java.util.*;
import java.util.Comparator;
public class problem1_3 {
public static void main(String[] args){
Scanner cin = new Scanner(System.in);
ArrayList<Integer> arr = new ArrayList<Integer>();
int n;
n = cin.nextInt();
for(int i = 2; i*i <= n; i ++ ){
if(n%i==0){
while(n%i==0){
arr.add(i);
n /= i;
}
}
}
if(n>1)arr.add(n);
Collections.sort(arr, new Comparator<Integer>(){
@Override
public int compare(Integer p1, Integer p2){
return -(Integer.compare(p1,p2));
}
});
System.out.println();
for(int x: arr){
System.out.print(x+ " ");
}
}
}
AC (Stack)
package test.paper12;
import java.util.Stack;
import java.util.Scanner;
public class problem1_2 {
public static void main(String[] args){
Scanner cin = new Scanner(System.in);
int n = cin.nextInt();
Stack<Integer> st = new Stack<Integer>();
for(int i = 2; i <= n/i; i ++ ){
if(n%i == 0){
while(n%i == 0){
st.add(i);
n /= i;
}
}
}
if(n>1)st.add(n);
while(!st.empty()){
System.out.print(st.pop() +" ");
}
}
}
problem2
package test.prog02;
import java.io.Serializable;
public class Book implements Serializable{
private String title;
private boolean published;
public Book(){
}
public Book(String title, boolean published){
this.title = title;
this.published = published;
}
@Override
public boolean equals(Object x){
if(this==x)return true;
if(x==null)return false;
if(getClass()!=x.getClass())return false;
Book xx = (Book)x;
if(published != xx.published) return false;
if(title == null){
if(xx.title!=null)return false;
}else if(!title.equals(xx.title))return false;
return true;
}
public void setTitle(String title){
this.title = title;
}
public String getTitle(){
return this.title;
}
public boolean isPublished(){
return published;
}
public void setPublished(){
this.published = published;
}
}