欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

Java编程思想-11持有对象

程序员文章站 2024-03-17 18:32:40
...
Java编程思想-11持有对象
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));  
}