黑马程序员——java基础---集合(下)
来源:互联网 发布:c语言设计培训班 编辑:程序博客网 时间:2024/05/17 01:03
黑马程序员——java基础—集合 (下)
——Java培训、Android培训、iOS培训、.Net培训、期待与您交流! ——-
一、 Map (HashMap、TreeMap)
Map的常用子类
|–Hashtable:内部结构是哈希表,是同步的。不允许null作为键,null作为值。
- |–Properties:用来存储键值对型的配置文件的信息,可以和IO技术相结合。
|–HashMap:内部结构式哈希表,不是同步的。允许null作为键,null作为值。
|–TreeMap:内部结构式二叉树,不是同步的。可以对Map结合中的键进行排序。
Map的特点:
一次添加一对元素,Collection一次添加一个元素。
Map也称为双列集合,Collection集合称为单列集合。
其实Map集合中存储的就是键值对。
map集合中必须保证键的唯一性。
Map常用方法
添加
- value put(key,value); 返回前一个和key关联的值,如果没有返回null。
删除
void clear(); 清空Map集合。
value remove(Object key); 根据指定的key删除这个键值对。
判断
boolean containsKey(key); 如果此映射包含指定键的映射关系,则返回 true。
boolean containsValue(value); 如果此映射将一个或多个键映射到指定值,则返回 true。
boolean isEmpty(); 如果此映射未包含键-值映射关系,则返回 true。
获取
value get(key): 通过键获取值,如果没有该键返回null。当然可以通过返回null,来判断是否包含指定键。
int size(): 获取键值对个数。
示例:
- 代码:
import java.util.*;class MapDemo { public static void main(String[] args) { Map<Integer,String> map=new HashMap<Integer,String>(); method(map); } public static void method(Map<Integer,String> map) { //因为8(key)没有前一个对应的值,故返回null; System.out.println(map.put(8,"小明")); //返回前一个和key关联的值 System.out.println(map.put(8,"小红")); System.out.println(map); map.put(9,"张三"); map.put(10,"李四"); System.out.println(map); //根据key值删除键值对 System.out.println("remove:"+map.remove(8)); //集合中是否包含此键的映射关系 System.out.println("containsKey:"+map.containsKey(9)); //根据键获取值 System.out.println(map.get(9)); }}
输出结果:
获取Map集合元素并打印的方法:
通过keySet方法获取Map中所有的键所在的set集合,在通过set的迭代器获取到每一个键。
通过entrySet方法将键和值的映射关系作为对象存储到了Set集合中,在分别求得元素的键和值。
- 通过values方法获得所有值得Collection集合,在通过Collection的迭代器将每一个值打印出来。
示例(通过keySet方法打印Map集合中的元素)
- 代码:
import java.util.*;class MapDemo1 { public static void main(String[] args) { Map<Integer,String> map=new HashMap<Integer,String>(); map.put(1,"张三"); map.put(2,"李四"); map.put(3,"王五"); map.put(4,"赵六"); Set<Integer> s=map.keySet();//获取Map及集合中所有键的set集合 Iterator<Integer> it= s.iterator();//获取Set集合的迭代器 while (it.hasNext()) { Integer key=it.next(); String str=map.get(key);//根据键获取其在Map集合中对应的值 System.out.println(key+"="+str); } }}
- 输出结果:
二、Collections类
Collections:是集合框架的工具类,里面的方法都是静态的。
Collections的常用方法:
binarySearch(List list, T key):使用二分搜索法搜索指定列表,以获得指定对象。
sort(List list) :根据元素的自然顺序 对指定列表按升序进行排序。
sort(List list, Comparator c) :根据指定比较器产生的顺序对指定列表进行排序。
max(Collection coll, Comparator comp) :根据指定比较器产生的顺序,返回给定 collection 的最大元素。
reverseOrder(Comparator cmp) :返回一个比较器,它强行逆转指定比较器的顺序。
swap(List list, int i, int j) :在指定列表的指定位置处交换元素。
replaceAll(List list, T oldVal, T newVal) :使用另一个值替换列表中出现的所有某一指定值。
shuffle(List list) :使用默认随机源对指定列表进行置换。
示例:
- 代码:
import java.util.*;class CollectionsDemo1{ public static void main(String[] args) { demo2(); } public static void demo2() { List<String> al=new ArrayList<String>(); al.add("aaad"); al.add("aa"); al.add("sdd"); al.add("ddd"); al.add("rtt"); //对集合al中的元素进行排序 Collections.sort(al); System.out.println(al); //使用二分法查找集合中的指定元素的角标 int index=Collections.binarySearch(al,"ddd"); System.out.println(index); //获取集合al中字符串长度最大的元素 String max=Collections.max(al,new ComparatorByLength()); System.out.println(max); }}class ComparatorByLength implements Comparator<String>{ public int compare(String o1,String o2) { int temp=o1.length()-o2.length(); return temp==0?o1.compareTo(o2):temp; }}
- 输出结果:
三、Arrays工具类
Arrays::集合框架的工具类,里面的方法都是静态的。
Arrays工具类的常用方法:
toString(Object[] obj):返回指定数组内容的字符串表示形式。
asList(数组):将数组转成集合
- 如果数组中的元素是对象,那么转成集合时,直接将数组中的元素作为集合中的元素进行集合存储。
- 如果数组中的元素是基本类型数值,那么会将该数组作为集合中的元素进行存储。
- 黑马程序员——Java基础---集合类(下)
- 黑马程序员——java基础---集合(下)
- 黑马程序员 Java基础 ---> 集合(下)
- 黑马程序员——Java基础---集合
- 黑马程序员——Java基础---集合
- 黑马程序员——java基础: 集合
- 黑马程序员——Java基础 ---集合
- 黑马程序员——Java基础---集合
- 黑马程序员——Java基础---集合
- 黑马程序员——Java基础---集合
- 黑马程序员——Java基础---集合
- 黑马程序员——java基础--集合
- 黑马程序员——Java基础---集合
- 黑马程序员——java基础-集合
- 黑马程序员——Java基础---集合
- 黑马程序员——Java基础---集合
- 黑马程序员——Java基础---集合
- 黑马程序员——Java基础---集合
- wsdl文档中的格式说明
- pulltorefresh上拉加载,没有更多数据的时候显示“加载完成”,不回调刷新接口的实现
- [leetcode 36] Valid Sudoku
- 数值优化(Numerical Optimization)学习系列-线性规划(Linear Programming)
- 黑马程序员--集合(一)
- 黑马程序员——java基础---集合(下)
- hibernate使用list映射,查询出来的list集合包含多个null记录
- 套接字的(客户端与服务器端的连接)
- This data item is already used in a primary identifier.的处理
- Android HandlerThread例子
- 如何编写dao_servlet容器处理请求资源路径_路径匹配
- ids for this class must be manually assigned before calling save():
- Tomcat远程调试配置
- T-SQL程序设计之数据类型