内容发布更新时间 : 2024/12/24 3:29:47星期一 下面是文章的全部内容请认真阅读。
博学谷——让IT教学更简单,让IT学习更有效
class cachePool
public void save(T temp) { // 在创建save()方法时,指定参数类型为T
this.temp = temp; }
public T get() { // 在创建get()方法时,指定返回值类型为T }
return temp; }
在定义CachePool类时,声明了参数类型为T,例如:在实例化对象时通过
案例7-18 Collections类对集合的操作
一、案例描述
1、 考核知识点
编号:00107019
名称:Collections工具类
2、 练习目标
? 掌握如何使用Collections类对集合进行操作
3、 需求分析
在程序中,针对集合的操作非常频繁,针对这些常见操作,JDK提供了一个工具类专门用来操作集合,这个类就是Collections。为了初学者能够熟悉Collections类中的方法,本案例将使用Collections类中的各种方法操作集合实现模拟斗地主发牌,来学习Collections类对集合操作的方法。
4、 设计思路(实现原理)
1) 编写类Example18,创建两个String类型数组,其中一个用于存储牌的花色,一个用于存储
牌的数字
2) 创建一个ArrayList集合作为牌盒,将大小王和不同花色不同数字的牌循环添加到集合中 3) 用Collections工具类的shuffle()方法洗牌
4) 创建三个ArrayList集合作为三个人的牌的集合,并循环发牌,要留三张底牌 5) 打印出三个人的牌和集合中留的三张底牌
二、案例实现
import java.util.*; public class Example18 {
public static void main(String[] args) {
// 表示花色的数组
String[] colors = { \黑桃\红桃\梅花\方块\
29
博学谷——让IT教学更简单,让IT学习更有效
}
}
// 表示点数的数组
String[] numbers = { \
\
// 找一个牌盒
ArrayList
for (String c : colors) { } // 洗牌
Collections.shuffle(array); // 发牌
ArrayList
for (int x = 0; x < array.size() - 3; x++) { } // 看牌
System.out.println(\System.out.println(\System.out.println(\// 看底牌
System.out.print(\三张底牌:\
for (int x = array.size() - 3; x < array.size(); x++) { }
System.out.print(array.get(x) + \if (x % 3 == 0) { }
linString.add(array.get(x)); zhouString.add(array.get(x)); meString.add(array.get(x)); } else if (x % 3 == 1) { } else if (x % 3 == 2) { for (String n : numbers) { }
array.add(c.concat(n));
运行结果如图7-24所示。
30
博学谷——让IT教学更简单,让IT学习更有效
图7-24 运行结果
三、案例总结
1、本案例中使用到了Collections工具类的shuffle()方法对List集合中的元素进行随机排序(模拟玩扑克中的“洗牌”)。
2、Collections工具类的其它方法,具体如表7-4所示。
表7-4 Collection类的相关方法 方法声明 static
一、案例描述
1、 考核知识点
编号:00107020 名称:Arrays工具类
2、 练习目标
? 掌握如何使用Arrays工具类对数组进行操作
3、 需求分析
Arrays是一个专门用于操作数组的工具类,其中提供了大量的静态方法。为了让初学者能熟悉Arrays类中方法的功能和使用,本案例将使用Arrays类中的各种方法对数据进行操作,来学习Arrays工具类对数组进行排序、转换等操作。
31
博学谷——让IT教学更简单,让IT学习更有效
4、 设计思路(实现原理)
1) 编写一个类Example21,在该类中定义一个数组 2) 用Arrays类中的sort()方法对数组进行排序 3) 用toString()方法将数组转换成字符串,并输出 4) 用asList()方法将数组转换成集合
二、案例实现
import java.util.*; public class Example19 { }
public static void main(String[] args) { }
Integer[] arr = { 3, 1, 6, 34, 78, 9 }; // 对数组排序 Arrays.sort(arr);
// 将排序后的数组转换成字符串打印出来
System.out.println(\排序后的数组:\// 将数组转换成集合
List
运行结果如图7-25所示。
图7-25 运行结果
三、案例总结
1、本案例中,使用Arrays的sort()方法时只需要将数组做为参数传递给sort()方法就可以,至于内部是怎么进行排序的我们无需关心。可见使用这个方法不仅可以大大减少代码的书写量,而且操作简单。使用Arrays工具类的方法toString(int[] arr)时。需要注意的是,该方法并不是对Object类toString()方法的重写,只是用于返回指定数组的字符串形式。
2、除了本案例中的三种方法,Arrays工具类中还有其他方法,如: 1)使用Arrays的binarySearch(Object[] a, Object key)方法查找元素
2)使用Arrays的copyOfRange(int[] original, int from, int to)方法拷贝元素 3)使用Arrays的fill(Object[] a, Object val)方法填充元素
32