




已阅读5页,还剩19页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第五部分 Java中的集合集合可以放置不同类型的数据,长度也是可以改变的,集合类都在java.util包中,包括:set、List、Map、等等。Collection 接口 是集合类的根接口,主要方法介绍:Boolean add(E o) 指定元素追加到列表最后Boolean addAll(Collection c) 将c中的所有元素追加Void clear()Boolean contains(object e) 判断是否含有指定元素Boolean containAll(Collection c) 判断是否包含全部int hashCode() 返回次集合的哈希码值Boolean isEmpty() Inerator iterator void remove(int index ) ; 删除指定位置上的元素Boolean removeAll(Collection c) 删除与集合c中相同的元素int size() toArray() 和数组形式的转换1.集合setSet实现了Collection 中的所有方法,不能有重复元素,主要的类 HashSet 和TreeSet(1) HashSet 对元素随机排序的集合类,无序不重复集合,如果元素个数超过了集合容量,会自动增加一倍;例子说名问题:import java.util.HashSet;public class HashSetTest public static void main(String args)HashSet hashSet = new HashSet();hashSet.add(red);hashSet.add(yellow);hashSet.add(blue);hashSet.add(white);hashSet.add(black);hashSet.add(8);System.out.println(hashSets info : + hashSet);hashSet.remove(red);System.out.println(hashSet : + hashSet.toString();System.out.println(the size of hashSet is : + hashSet.size();Object Value = hashSet.toArray();for(int i=0;iValue.length;i+)System.out.print(Valuei+ );System.out.println();System.out.println(hashSet.contains(2);hashSet.clear();System.out.println(the hashSets size : + hashSet.size();运行结果:hashSets info : red, white, 8, blue, yellow, blackhashSet : white, 8, blue, yellow, blackthe size of hashSet is : 5white 8 blue yellow black falsethe hashSets size : 0(2) TreeSet类 对元素排序的有序集合集合中元素是自然排序,不能有重复元素例子说明:import java.util.TreeSet;import java.util.SortedSet;public class TreeSetTest public static void main(String args)SortedSet treeSet = new TreeSet();treeSet.add(10);treeSet.add(red);treeSet.add(yellow);treeSet.add(blue);treeSet.add(white);System.out.println(first_treeSet = + treeSet.first();System.out.println(last_treeSet = + treeSet.last();/System.out.println(subSet_treeSet = + treeSet);System.out.println(treeSetlength : + treeSet.size();System.out.println(treeSet is Contain red :+ treeSet.contains(red);treeSet.clear();System.out.println(treeSet.isEmpty();运行结果:first_treeSet = 10last_treeSet = yellowsubSet_treeSet = 10, blue, red, white, yellowtreeSetlength :5treeSet is Contain red : truetrue其他的构造方法:public TreeSet(Collection c) / 含指定集合c中元素的setpublic TreeSet(Comparation c) / 构造根据制定比较器进行排序的空setpublic TreeSet(SortedSet s) / 构造复制品2 列表List顺序存放,可以有重复元素,主要有 ArrayList , VectorList , Stack (1) ArrayList 实现数组的动态操作,例子:import java.util.ArrayList;import java.util.List;public class ArrayListTest public static void main(String args)List arrayList = new ArrayList();arrayList.add(red);arrayList.add(yellow);arrayList.add(1,blue);arrayList.add(2);System.out.println(arrayList = + arrayList);/删除元素arrayList.remove(3);System.out.println(arrayList = + arrayList);/以数组为单位构建数组arrayList.add(black);arrayList.add(red);List arrayList2 = new ArrayList();arrayList2.add(arrayList);arrayList2.add(arrayList);System.out.println(arrayList2_size + arrayList2.size();for(int i=0;iarrayList2.size();i+)System.out.print(arrayList2.get(i) + );/转化为数组System.out.println();String values = new StringarrayList.size();arrayList.toArray(values);for(int i= 0;ivalues.length;i+)System.out.print(valuesi + );/* 但是这里转化为数组的Arraylist不能是Array对象 在这里就是说arrayList2不能转化为数组 */调整arrayList的长度,节省空间System.out.println(arrayList.size();(ArrayList) arrayList).trimToSize();System.out.println(arrayList.size();运行结果:arrayList = red, blue, yellow, 2arrayList = red, blue, yellowarrayList2_size 2red, blue, yellow, black, red red, blue, yellow, black, red red blue yellow black red 55其他方法:public void add(int index , E element) / 插入到指定位置pubic void addAll(Collection c) / 将所有元素追加到尾部(2) Vector类构造方法:Public Vector() Public Vector(Collection e )Public Vector(int initialCapatity)Public Vector(int initialCapatity , int capatityCream)如果不定义增量的话,自动增长会增加一倍用法和ArrayList一样(3) Satck 栈import java.util.*;public class StackTest public static void main(String args)Stack stack = new Stack();stack.push(red);stack.push(black);stack.push(white);stack.push(yellow);System.out.println(stack : + stack);stack.pop();System.out.println(stack : + stack);if(!stack.empty()System.out.println(stack.peek();/在栈中的位置System.out.println(stack.search(red);运行结果:stack : red, black, white, yellowstack : red, black, whitewhite33. 映射MapMap接口没有继承Collection接口,通过键的值指定位置存放,键值(key)不能重复,主要介绍 HashMap 和HashTable(1) HashMapimport java.util.Map;import java.util.HashMap;public class HashMapTest public static void main(String args)Map hashMap = new HashMap();hashMap.put(1,red);hashMap.put(2,white);hashMap.put(3, black);hashMap.put(2, grap);/打印System.out.println(hashMap);System.out.println(hashMap.get(0);/删除hashMap.remove(1);System.out.println(hashMap);/判断键值是否存在if(hashMap.containsKey(1)System.out.println(hashMap.get(1);/判断是否含有指定内容System.out.println(hashMap.containsValue(white);运行结果:2=grap, 1=red, 3=blacknull2=grap, 3=blackfalse解析:写入相同的键值,后写入的会替代前面的;其他的方法:containsKey() ,containsValue();(2) HashTable 构造方法:Public Hashtable()Public Hashtable(int initialCapacity)Public Hashtable(int initialCapacity , int loadFactor)HashTable(Map m)例子:import java.util.Hashtable;import java.util.Map;public class HashTableTest public static void main(String args)Map hashTable = new Hashtable();hashTable.put(1,red);hashTable.put(2,white);System.out.println(hashTable);hashTable.get(1);/hashTable.remove(2);System.out.println(hashTable);/System.out.println(hashTable.containsKey(2);System.out.println(hashTable.containsValue(red);hashTable.clear();System.out.println(hashTable.size();运行结果:2=white, 1=red1=redfalsetrue04. 迭代器 iterator三个方法:Boolean hashNext() / E next() /Void remove() /例子:import java.util.Iterator;import java.util.List;import java.util.ArrayList;public class ListIteratorTest public static void main(String args)List arrayList = new ArrayList();arrayList.add(red);arrayList.add(white);arrayList.add(gray);arrayList.add(1,blue);System.out.println(arrayList);/Iterator it = arrayList.iterator();while(it.hasNext()String listKey = it.next().toString();System.out.println(listKey);运行结果:red, blue, white, grayredbluewhitegray例子2:import java.util.HashMap;import java.util.Map;import java.util.Iterator;public class MapIteratorTest public static void main(String args)Map hashMap = new HashMap();hashMap.put(1, arg1);hashMap.put(2, arg2);hashMap.put(3,arg3);hashMap.put(4, arg4);Iterator it = hashMap.keySet().iterator();while(it.hasNext()int key = Integer.parseInt(it.next().toString();System.out.println(hashMap.get(key);运行结果:arg2arg4arg1arg3Collections类它不是一个集合,提供了大量的与集合操作有关的方法,包括:列表排序,确定类表中最小元素,支持集合线程同步;例子:import java.util.ArrayList;import java.util.Collections;import java.util.List;public class ListSortAndReverse public static void main(String args)List arrayList = new ArrayList();arrayList.add(white);arrayList.add(red);arrayList.add(yellow);arrayList.add(1,blue);System.out.println(排序前的列表: + arrayList);Collections.sort(arrayList);System.out.println(排序后列表: + arrayList);Collections.reverse(arrayList);System.out.println(反转排序后的列表: + arrayList);运行结果:排序前的列表: white, blue, red, yellow排序后列表: blue, red, white, yellow反转排序后的列表: yellow, white, red, blue解析:如果元素之间不能进行比较就会抛出ClassCastException异常综合例子1:顺序输出hashMap映射中的键值import java.util.*;public class mapKeyToListTest public static List mapKeyToList(Map map,Comparator desc)Set keySet = map.keySet();List list = new ArrayList();list.addAll(keySet);Collections.sort(list,desc);return list;public static void main(String args)Map hashMap = new HashMap();hashMap.put(r,red);hashMap.put(b,blue);hashMap.put(y,yellow);hashMap.put(o,orange);hashMap.put(w,white);Iterator it = hashMap.keySet().iterator();while(it.hasNext()String key = it.next().toString();System.out.print(hashMap.get(key) + );System.out.println();List list = mapKeyToList(hashMap,null);System.out.println(list);运行结果:orange white red yellow blue b, o, r, w, y综合例子2:顺序输出hashMap中键对应的值import java.util.ArrayList;import java.util.Collections;import java.util.Comparator;import java.util.HashMap;import java.util.Iterator;import java.util.List;import java.util.Map;import java.util.Set;public class MapValueToListTest public static List mapValueToList(Map map,Comparator desc)List listValue = new ArrayList();Iterator it = map.keySet().iterator();while(it.hasNext()listValue.add(map.get(String)it.next();Collections.sort(listValue,desc);return listValue;public static void main(String args)Map hashMap = new HashMap();hashMap.put(r,red);hashMap.put(b,blue);hashMap.put(y,yellow);hashMap.put(o,orange);hashMap.put(w,white);Iterator it = hashMap.keySet().iterator();while(it.hasNext()String key = it.next().toString();System.out.print(hashMap.get(key) + );System.out.println();List list = mapValueToList(hashMap,null);System.out.println(list);运行结果:orange white red yellow blue blue, orange, red, white, yellow第六部分 Java常用类所有类的父类Object类,它提供了9中方法: finalize() , clone() , notify(),notifyAll() , wait() , equals() , getClass() , hashCode(), toString().还包括Math类,Random类,Date类,DateFormat类,以及Calendar类,下面学习;一9种方法1. finalize()方法使用方法:protected void finalize() /程序代码用来处理垃圾回收的,具体内容详细学习2、 clone() 克隆技术 Car c1 = new Car(); Car c2 = c1;这是对象的赋值,c1,c2指向同一块堆内存,修改一个就修改了两个Car c2 = c1.clone();克隆技术就是解决这个问题,使c1,c2 指向不同的堆内存,但是相同的内容3.notify(),4.notifyAll() 5. wait()6.equals() 判断两个对象在引用上是否相同,包括地址和内容,其他类可以重写这个方法,String重写了这个方法,只判断内容是否相同,而StringBuffer没有重写,还要地址相同才可以7. getClass() 返回对象的运行时类,该方法不可以重写的;可以判断两个对象是否属于同一个类,也可以通过“对象名.getClass().getName()”获得类名;例子:class Carclass SportCar extends Carpublic class GetClassTest public static void main(String args)Car c= new Car();SportCar sc = new SportCar();System.out.println(c 所属的类 : + c.getClass();System.out.println(sc 所属的类 : + sc.getClass().getName();System.out.println(c.equals(sc);/重写equals()public boolean equals(Object o)if(getClass() = o.getClass()return true;else return false;运行结果:c 所属的类 : class Carsc 所属的类 : SportCarfalse8.hashCode()该函数返回对象的哈希码值,该值是通过将对象的内存地址转换为一个整数来实现的,这样obj1.equals(obj2)为TRUE的话,那么他们的哈希码值应该是相同的;当然除了重写函数的例子:public class HashCodeTest public static void main(String args)String s1 = new String (hello);String s2 = new String (java);String s3 = java;System.out.println(s1.hashCode = + s1.hashCode();System.out.println(s2.hashCode = + s2.hashCode();System.out.println(s3.hashCode = + s3.hashCode();System.out.println(s2.equals(s3);运行结果:s1.hashCode = 99162322s2.hashCode = 3254818s3.hashCode = 3254818true9.toString() 该方法返回对象的字符串表示,该字符串为:类名对象哈希码的十六进制 例子:class Testpublic class toSTringTest public static void main(String args)Test c = new Test();System.out.println(c.toString();运行结果:Test998b08该方法应该重写,这样没有实际的意义二基本数据类型对象的封装类Java中的基本数据类型不属于Object类,他们之间是不相容的,但是java中提供了一组封装类,将基本数据类型转化为对象,就是所谓的装箱;还可以拆箱;import java.util.ArrayList;public class A public static void main(String args)ArrayList list = new ArrayList();list.add(1);list.add(2);list.add(3);list.add(4);System.out.println(list.get(0) + + list.get(1);运行结果:1 2分析:Add()方法接收的是Integer对象,get()方法得到的是int数据,这里是自动拆箱;基本数据类型的和对象类型的转化方法;Public Integer(int Value);装箱Public int intValue();拆箱其他的类同:public Character(char value),public char charValue();三与数学计算相关的类 Math类常量字段: E 自然对数底数 PIabs() -绝对值,double float int long三角函数和反三角函数 cos,sin,tag,asin,acos,atan, - 全为double类型public static double pow(double a, double b) a 的b 次方public static double exp(double ) e 的a 次方public static double sqrt(double a ) - 平方根public static double cbrt(double a ) 立方根log()log10()max(type a ,type b);min(type a, type b);随机数 public static double random() 返回0.0 到1.0 之间的数数值的舍入:public class DataCalculate public static void main(String args)double d = 4.4;System.out.println(Math.rint(d); /最接近参数的整数System.out.println(Math.round(d); / 四舍五入的long型System.out.println(Math.floor(d); / 不大于参数的整数System.out.println(Math.ceil(d); /不小于参数的整数运行结果:4.044.05.0四产生随机数的random类import java.util.Random;public class RadomTest public static void main(String args)Random rand1 = new Random();/随机数生成器int k1 = rand1.nextInt(20); /020System.out.println(k1);Random rand2 = new Random(10); /使用10 为种子创建随机数int k2 = rand2.nextInt(20); /020System.out.println(k2);运行结果:12413 13K1是随机的,k2 在第二次运行时和第一次是一样的 参数10 的作用:五日期时间类 Date可以表示到精确到毫秒的瞬间构造方法:Public Date() 创建一个Date对象并获取当前时间Public Date(long date) 表示从190:00:00开始计算的相对时间,精确到毫秒;比较日期的方法:Boolean after(Date when )Boolean before(Date when)Boolean equals(Object obj)日期格式化的DateFormat类例子:import java.text.SimpleDateFormat;import java.util.Date;public class DateFormatTest public static final String YYYMMDDHHMMSS = YYYY/MM/dd HH:mm:ss;public static void main(String args)Date nowDate = new Date(); /System.out.println(nowDate);/格式化时间SimpleDateFormat sf1 = new SimpleDateFormat(YYYMMDDHHMMSS);System.out.println(sf1);Date date = new Date(6000);System.out.println(date);没有调试通过操作日历的Calendar类:import java.util.Calendar;import java.util.GregorianCalendar;import java.text.*;public class CalendarTest public static final String YYYMMDD = yyyy年MM月dd日;public static void main(String args)Calendar calendar = new GregorianCalendar();int nowYear = calendar.get(Calendar.YEAR);int nowMonth = calendar.get(Calendar.MONTH);int nowDay = calendar.get(Calendar.DAY_OF_MONTH);calendar.set(nowYear,nowMonth,nowDay);SimpleDateFormat sf = new SimpleDateFormat(YYYMMDD);System.out.println(当前时间为: + sf.format(calendar.getTime();long nowTime = calendar.getTimeInMillis();calendar.set(2008,7,8);System.out.println(北京奥运会时间为: + sf.format(calendar.getTime();long OPTime = calendar.getTimeInMillis();long time = (nowTime - OPTime)/(1000*60*60*24);System.out.println(北京奥运会就现在已经: + time);运行结果:当前时间为: 2010年02月12日北京奥运会时间为: 2008年08月08日北京奥运会就现在已经: 553第七部分 泛型和枚举一 泛型类型这就是C+ 中模板的用法:集合的泛型应用就不说了,下面看Car类:import java.util.Comparator;import java.util.Iterator;import java.util.TreeSet;public class CarPowerTest public static void main(String args)TreeSet treeSet = new TreeSet(new Comparator()public int compare(CarPower c1,CarPower c2)return pareTo(c2););CarPower cm1 = new CarPower(372,宝马6系M6);CarPower cm2 = new CarPower(309,奔驰slk350);CarPower cm3 = new CarPower(239,保时捷911 Carrera);CarPower cm4 = new CarPower(200,奔驰SLK 431);treeSet.add(cm1);treeSet.add(cm2);treeSet.add(cm3);treeSet.add(cm4);/Iterator it = treeSet.iterator();while(it.hasNext()CarPower listKey = it.next();System.out.println(listKey.carPower+ + listKey.carName);class CarPowerint carPower;String carName;CarPower(int carPower,String carName)this.carPower = carPower;this.carName = carName;public int compareTo(CarPower cm)return this.carPower - cm.carPower; 运行结果:200 奔驰SLK 431239 保时捷911 Carrera309 奔驰slk350372 宝马6系M6解析:TreeSet()四种构造方法,一种是指定比较器,Comparator是个接口,里面的compare()方法,要重写;二 枚举类型定义常量:enum DirectionFORWARD,BACK,LEFT,RIGHT定义方法:第八部分 String(1)构造方法public class test2 extends test1 public static void main(String args)char c = f,o,r,e,v,e,r;/构造方法String s1 = new String();String s2 = new String(forever);String s3 = new String(c);String s4 = new String (c,1,3);/获取字符串长度System.out.println(s4.length();System.out.println(s1+ +s2+ + s3 + + s4);运行3 forever forever ore(2)比较方法(1)public class test2 public static void main(String args)String s1 = new String (hello java!);String s2 = new String (hello java!);String s3 = hello java!;String s4 = hello java!;System.out.println(s1=s2);System.out.println(s1=s3);System.out.println(s4=s3);运行结果:falsefalsetrue解析:s1 ,s2 分别开辟了两个不同的空间,返回值为false; S3 ,s4 这样的方式传创建的常量被放在公共的字符串池中,可以共享使用,即s3,s4指向的地址是一样的(2)public class test2 public static void main
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 资料员之资料员基础知识预测复习带答案详解(综合卷)
- 自考专业(计算机应用)复习提分资料【原创题】附答案详解
- 2025版软件行业保密协议及行业秘密保护合作合同
- 2025版环保材料区域代理合作协议
- 2025版影视作品摄影棚场地使用权转让居间合同
- 2025年度人防设备安全检测采购、安装与评估合同
- 2025场部保密协议范本:保密条款及数据安全协议
- 2025版全新办公用品一件代发合作协议书下载
- 2025版汽车美容店汽车美容项目投资合作协议
- 2025版教育机构担保销售合同协议书
- 2025广东省中考英语真题(原卷版)
- 2025年四川省投资集团有限责任公司招聘笔试备考题库含答案详解
- 变电站防恐课件
- 2025年关于村支部书记的面试题及答案
- 2025湖南非全日制用工劳动合同范本2
- 2025年农村商业银行招聘笔试真题及答案(可下载)
- 熏蒸药品管理办法
- 收银系统操作培训
- 卓越幼儿园教师健康专题培训课件
- 个股期权培训课件
- 临时起搏器安置术的护理
评论
0/150
提交评论