Java基础学习(4)

2018-11-21 22:12

他是一个固定长度的List集合,程序只能遍历,不可增加,删除(集合个数用size()方法,数组个数用length()方法).

Queue接口方法:

1. void add(Object o):将指定元素加入队列尾部. 2. Object element():获取队列头部的元素,但是不删除.

3. boolean offer(Object e):将指定元素加入尾部,当使用有容量限制的队列时,

比add方法更好.

4. Object peek():获取队列头部的元素,但是不删除该元素,如果队列为空,返

回null.

5. Object poll():同上,但是要删除这个元素. 6. Object remove():获取并且删除队列头部元素.

Queue接口的实现类:LinkedList和PriorityQueue,下面介绍这个两个类. LinkeList类:(同时也是List的子类,可以通过索引来随机访问元素,并且额外实现了Deque接口,Deque是Queue的子接口,它代表了一个双向队列) 1. void addFirst(Object e):插入队列开头. 2. void addLast(Object e):插入队列结尾.

3. Obejct getFirst()/getLast():获取第一个/最后一个元素,但是不删除. 4. Object offerFirst(Object e)/offerLast(Object e):插入开头/结尾.

5. Object peekFirst/peekLast():获取第一个/最后一个元素,但不删除,空?null. 6. Object pollFirst/pollLast():获取并且删除,空返回null.

7. Object pop():pop出该双向队列的第一个元素,不存在在集合中了. 8. void push(Object o):入栈到头部一个元素.

9. Object removeFirst()/removeLast():获取并删除第一个/最后一个元素. 10. boolean removeFirstOccurrence(Object o)/removeLastOccurrence(Object o):

删除第一次/最后一次出现的元素. System.currentTimeMillis()获取系统当前时间. PriorityQueue实现类会对保存的元素进行排序. Map接口:保存具有映射关系的数据.

Map包含了一个keySet()方法,用来返回所有key组成的Set集合.

Map的value放在一起非常类似于List.

Map的实现类:HashMap和Hashtable.

1.Hashtable是一个线程安全的Map实现,但是HashMap不是线程安全的.所以HashMap性能比Hashtable高一点,但是如果多条线程访问,还是Hashtable要好一点.

2.Hashtable不允许null作为key-value对,而HashMap可以.

HashMap也有一个子类LinkedHashMap,使用了双向链表来维护key-value的次序,迭代顺序与key-value的插入顺序保持一致.

Properties是Hashtable的子类,用来处理属性文件.下面列出其方法: 1.String getProperty(String key ,[String default value]):获取指定的属性名对应的属性,如果不存在返回第二个参数默认值,第二个参数可选.

2.Object setProperty(String key,String value):设置属性值.

3.void load(InputStream inStream):加载key-value到Properties里.

4.void store(OutputStream,String comments):将Properties中的key-value对写

入指定属性文件.store(new FileOutputStream(“文件名”),”comments”)

Map接口的实现方法还有SortedMap,TreeMap,WeakHashMap,IdentiHashMap和EnumMap等.通常使用Map的时候首选是HashMap实现,除非总是需要一个排好序的Map才使用TreeMap.

操作集合的工具类:Collections,他提供下列方法来对List集合进行排序. 1. static void reverse(List list):反转List集合中的元素顺序. 2. static void shuffle(List list):随机排序(模拟了洗牌动作).

3. static void sort(List list):根据元素的自然顺序对指定集合进行升序排序. 4. static void swap(List list,int I,int j):将i和j处元素交换. Collections提供的用于查找和替换的常用方法:

1.static int binarySearch(List list,Object o):获得指定对象在集合中的索引.List必须是处于已排序状态!

2.static Object max(Colletction c):根据元素的自然顺序,返回集合中最大的元素.

3.static Object min(Collection c):返回集合中最小的元素.

4.static void fill(List list,Object o):使用o对象替换集合中的所有元素. 5.static int frequency(Collection c,Object o):返回指定对象出现的次数. 6.static int indexOfSubList(List source,List target):返回target在source中第一次出现的索引,如果没有出现返回-1.

7.static int lastIndexSubList():同上,返回的是最后一次出现的索引.

8.static boolean replaceAll(List list,oldVal,newVal):用newVal替换掉List中所有的oldVal.

(TestSearch.java)

Properties props = System.getProperties();

//props.list(System.out);

Object[] objs = props.keySet().toArray(); for(int i = 0; i < objs.length; i++) {

System.out.println(objs[i]+\+props.getProperty((String)ob

js[i]));//实现同样的功能

}

六、2016.05.10

这样使集合编程线程安全的.

Java的参数化类型被称为泛型(Generic). 泛型应用:

1. 定义反省类,接口. 2. 才泛型类派生子类. 3. 并不存在泛型类. 4. 类型通配符:

a) 设定类型通配符的上限 b) 设定类型形参的上限

5. 定义泛型方法.TestGenericMethod.java

Java提供了String,StringBuffer和StringBuilder来处理字符串,常用Calendar来处理日期(一般不用Date),同时Java还提供了简单的国际化支持,用Locale对象封装一个国家,再使用 ResourceBundle根据Locale来加载对应的语言资源文件,然后调用getString()来取出指定key对应的消息字符串.

Scanner类用来获取用户输入:

1. hasNextXxx():判断是否还有下一个输入项,其中Xxx可以是int,long等,如果需要判断是否包含下一个字符串,则可以省略Xxx.

2. nextXxx():获取下一个输入项. 输入下面一行代码只将回车作为输入分隔符sc.useDelimiter(\是Scanner的对象)

Scanner的读取操作可能被阻塞,hasNext和next方法都有可能被阻塞.只要为Scanner设置分隔符即可:useDelimiter(String pattern). Scanner有两个简单的方法来逐行读取: 1. hasNextLine():判断是否还有下一行.


Java基础学习(4).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:2015中国石油大学(华东)第二学期期末试题《C语言》综合复习

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: