题目描述
输入一个int型整数,按照从右向左的阅读顺序,返回一个不含重复数字的新的整数。
思路:利用将整型转化为字符串,放入ArrayList中,判断有没有重复的,没有就添加进去,再遍历集合即可。
import java.util.ArrayList;
import java.util.Iterator;
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner sc=new Scanner(System.in);
int num=sc.nextInt();
String str=String.valueOf(num);
ArrayList<Character> list=new ArrayList<>();
for(int i=str.length()-1;i>=0;i--){
if(!list.contains(str.charAt(i)))
{list.add(str.charAt(i));}
}
Iterator iter=list.iterator();
while(iter.hasNext()){
Object a=iter.next();
System.out.print(a);
}
}
}
排坑:
1.因为考虑不可重复,所以开始写的时候用的是HashSet方法,但是发现输出是有序的,例如1123,输出是123,会自动排序,后来查资料才知道HashSet底层使用的是HashMap,会实现输出排序,因此改用ArrayList。
2.集合所说的序,是指元素存入集合的顺序,当元素存储顺序和取出顺序一致时就是有序,否则就是无序。