Java编程思想-11持有对象


一、数组

数组:固定长度、可存储基本数据类型,是保存一组对象最有效的方式
容器:可变长度、只存储引用数据类型

二、Iterator

迭代器,从集合中取元素的工具
hasNext():	是否有下一个元素 
next():	返回迭代的下一个元素
remove():移除迭代器返回的最后一个元素

三、Collection

1、共性方法

add(Object):			添加一个元素;
addAll(Collection):		添加一个集合中的所有元素;

clear():			清空集合;
remove(Object):		删除一个元素;
removeAll(Collection):		删除部分元素;
retainAll(Collection):		获取两个集合的交集;

isEmpty():			是否为空;
contains(Object):		是否包含元素;		
containsAll(Collection):	是否包含多个元素;

size():			获取元素的数量;
toArray():			获取元素的数字;
iterator():			获取迭代器;

2、List

特点:有序可重复
特有方法:
add(int, Object):		在指定位置,插入元素;
addAll(int, Collection):	在指定位置,插入多个元素;

get(int):			获取指定位置的元素;
set(int, Object):		替换指定位置的元素;
remove(int):			删除指定位置的元素;

indexOf(Object):		获取元素的索引(正向);
lastIndexOf(Object):		获取元素的索引(反向);

subList(int, int):		获取子集合;
listIterator():		获取list特有迭代器;

3、Set

特点:无序不重复
无特有方法

4、队列:Queue

特点:先进先出
LinkedList实现了Queue接口
add(Object);			插入元素,空间不足会抛异常;		
offer(Object):			插入元素,优于add(Object);

element():			获取元素,不移除队列头;
remove():			获取元素,会移除队列头;
 
peek():			获取元素,不移除队列头;如果队列为空,则返回 null;
poll():			获取元素,会移除队列头;如果队列为空,则返回 null; 

5、工具类:Collections

用于操作集合的工具类,其方法都是静态的
sort(List):			将集合排序(按自然顺序,升序)
max(Collection):		取最大元素(按自然顺序)
min(Collection):		取最小元素(按自然顺序)
......

四、Map

1、共性方法

put(Object, Object):		保存键值对;
get(Object):			获取键的值;
remove(Object):		删除一个键;

putAll(Map):			保存多个键值对;
clear():			清空;

size():			获取键值对的数量;
isEmpty():			是否为空;
containsKey(Object):		是否包含键;
containsValue(Object):		是否包含值;

keySet():			获取Map所有键 ;
values():			获取Map所有值;
entrySet():			获取Map所有映射关系 ;

2、遍历Map

Map map=new HashMap<>();
    	
//方法一:entrySet()
//最常见、最可取
for(Map.Entry<String, Object> entry : map.entrySet()){
    System.out.println("Key =   " + entry.getKey());  
    System.out.println("Value = " + entry.getValue());  
}
    
    	
//方法二:keySet()、values()
//比方法一快10%
for (String key : map.keySet()) {  
    System.out.println("Key =   " + key);  
}
for (Object value : map.values()) {  
    System.out.println("Value = " + value);  
}
    
    	
//方法三:Iterator
//性能同方法二,可同时删除元素
//取键值对
Iterator<Entry<String, Object>> it = map.entrySet().iterator(); 
while (it.hasNext()) {  
    Map.Entry<String, Object> entry = it.next();  
    System.out.println("Key =   " + entry.getKey());  
    System.out.println("Value = " + entry.getValue());  
}
//只取键
Iterator<String> itKey = map.keySet().iterator(); 
while (itKey.hasNext()) {  
    System.out.println("Key =   " + itKey.next());  
}
//只取值
Iterator<Object> itValue = map.values().iterator(); 
while (itValue.hasNext()) {  
    System.out.println("Value = " + itValue.next());  
}
    
    	
//方法四:键找值
//效率低(比方法一低20%~200%)
for (String key : map.keySet()) {  
    System.out.println("Key =   " + key);  
    System.out.println("Value = " + map.get(key));  
}  
阅读更多
个人分类: Java编程思想
上一篇Java编程思想-10内部类
下一篇Java编程思想-12通过异常处理错误
想对作者说点什么? 我来说一句

没有更多推荐了,返回首页

关闭
关闭
关闭