一、题目
从键盘随机输入10个整数保存到List中,并按倒序、从大到小的顺序显示出来。
二、相关知识简要介绍
本题主要是练习集合List的使用和Collections工具类。
1、List
首先,List接口是存储有序,可重复的元素。其次,List接口主要有2个实现类ArrayList和LinkedList,本题我们使用List的主要实现类ArrayList来实现。
2、List中添加方法和Collections中方法介绍
(1)List:
①void add(Object o):将元素o,添加到集合中
②void add(int index,Object o):在指定的索引位置添加元素o
③void addAll(Collection coll):将形参coll中包含的所有元素添加到当前集合中
(2)Collections工具类方法:(此处用集合List作为形参,只要是集合的对象,都可以在此处做形参)
①reverse(List):反转List中元素的顺序
②sort(List):根据元素的自然顺序对指定List集合元素按升序排序
③Object max(Collection,Comparator):根据Comparator指定的顺序,返回给定集合中的最大元素
3、集合输出的方法
①使用循环实现(不推荐)
Iterator iterator=list.iterator(); //迭代器
for(int i=0;i<list.size();i++) { //list为集合对象
System.out.println(iterator.next());
}
②使用增强for循环实现
for(Object i:list){ //list为集合的对象,此处假定集合里面存在元素
System.out.print(i);
}
③使用迭代器实现(推荐)
Iterator iterator=list.iterator();
while(iterator.hasNext()) {
System.out.println(iterator.next());
}
三、题目解析
本题思想就是从键盘输入10个整数,然后使用Collections的sort()将集合中元素按顺序排列,然后使用reverse()方法将集合中元素倒置,打印输出即可。
四、代码实现
@Test
public void coll_test() {
List list=new ArrayList();
Scanner in=new Scanner(System.in);
System.out.println("输入10个数字:");
for(int i=0;i<10;i++) {
list.add(in.nextInt());
}
Collections.sort(list);
Collections.reverse(list);
System.out.println("排序后的数为:");
Iterator iterator=list.iterator();
while(iterator.hasNext()) {
System.out.print(iterator.next()+" ");
}
}