java基础(五),集合,泛型
2016-04-13 15:14
501 查看
ArrayList是一个有序的列表,新增进去的数据会按照顺序排列
优点
1.相比数组来说,长度是可变的
2.可以存放任意类型的数据
3.有更多的API来处理集合里面的数据
4.更高效
不废话,直接上代码,看了代码啥都懂了
HashMap
是使用键值对的形式来存放数据的,不能保证元素的存储顺序
以上内容没有使用泛型,其实对程序来说是不好的,效率低,并且没有安全性,下面来加上泛型
首先泛型一定是包装类,eg:Integer、Double、Float…。而不能是 int、double、float…
小例子:用泛型的方法比较任意类型数组的大小
将最大值和最小值封装成一个类,用泛型,Pair.java
创建一个Calc.java类来进行比较传进来的数组的大小
最后一个测试类Test.java
优点
1.相比数组来说,长度是可变的
2.可以存放任意类型的数据
3.有更多的API来处理集合里面的数据
4.更高效
不废话,直接上代码,看了代码啥都懂了
ArrayList list = new ArrayList();// 创建一个ArrayList对象 list.add("aaa");// 往list里添加数据 list.add("bbb"); list.add("ddd"); list.add("eee"); for (int i = 0; i < list.size(); i++) { // 通过get方法来获取list里面的每一条数据,遍历得到 String string = (String) list.get(i); System.out.println(string); } // 对集合里的数据进行修改 list.set(1, "bbbbbb"); // 对集合里的数据进行增加 list.add(2, "ccc"); // 对集合里的数据进行删除 list.remove(4);
HashMap
是使用键值对的形式来存放数据的,不能保证元素的存储顺序
HashMap map = new HashMap(); map.put("zhang", "1234"); map.put("li", "59273957"); map.put("ma", "127253"); System.out.println(map.size());// 输出集合的大小 System.out.println(map.keySet().size());// 输出集合的健的大小 // map.keySet()可以取出map中的键,是一个set集合 for (Object key : map.keySet()) { System.out.println("key:" + key + ",value:" + map.get(key)); }
以上内容没有使用泛型,其实对程序来说是不好的,效率低,并且没有安全性,下面来加上泛型
首先泛型一定是包装类,eg:Integer、Double、Float…。而不能是 int、double、float…
小例子:用泛型的方法比较任意类型数组的大小
将最大值和最小值封装成一个类,用泛型,Pair.java
package bgzy.javatest.demo5; /** * @author ad 把最大值和最小值分装成一个对象 * 类型不确定就使用泛型 */ public class Pair<T> {//定义成泛型,什么数据类型都可以进行比较 private T min; private T max; public T getMin() { return min; } public void setMin(T min) { this.min = min; } public T getMax() { return max; } public void setMax(T max) { this.max = max; } public Pair() { super(); // TODO Auto-generated constructor stub } public Pair(T min, T max) { super(); this.min = min; this.max = max; } @Override public String toString() { return "Pair [min=" + min + ", max=" + max + "]"; } }
创建一个Calc.java类来进行比较传进来的数组的大小
package bgzy.javatest.demo5; public class Calc { public static <T extends Comparable<T>> Pair panduan(T nums[]) {// 传入任意类型的数组 T maxNum = nums[0]; T minNum = nums[0]; for (int i = 0; i < nums.length; i++) { // if (maxNum < nums[i]) {maxNum = nums[i];} if (maxNum.compareTo(nums[i]) < 0) { maxNum = nums[i]; } // if (minNum > nums[i]) {minNum = nums[i];} if (minNum.compareTo(nums[i]) > 0) { minNum = nums[i]; } } return new Pair(minNum, maxNum); } }
最后一个测试类Test.java
package bgzy.javatest.demo5; public class Test { public static void main(String[] args) { Integer nums[] = { 10, 25, 33, 45, 89, 12, 200, 32, 45, 61, 28 };//定义成Integer类型,泛型只能是包装类 String nums2[] = { "aa", "bb", "gg", "ff", "cc", "hh", "yy", "dd", "ee" }; // Pair pair = Calc.panduan(nums); Pair<Integer> pair = Calc.panduan(nums); Pair<String> pair2 = Calc.panduan(nums2); // System.err.println("max" + pair.getMax() + ",min" + pair.getMin()); System.out.println("max" + pair2.getMax() + ",min" + pair2.getMin()); } }
相关文章推荐
- java对世界各个时区(TimeZone)的通用转换处理方法(转载)
- java-注解annotation
- java-模拟tomcat服务器
- java-用HttpURLConnection发送Http请求.
- java-WEB中的监听器Lisener
- Android IPC进程间通讯机制
- Android Native 绘图方法
- Android java 与 javascript互访(相互调用)的方法例子
- 介绍一款信息管理系统的开源框架---jeecg
- 聚类算法之kmeans算法java版本
- java实现 PageRank算法
- PropertyChangeListener简单理解
- c语言实现hashmap(转载)
- c++11 + SDL2 + ffmpeg +OpenAL + java = Android播放器
- 插入排序
- 冒泡排序
- 堆排序
- 快速排序