黑马程序员-基础知识梳理6
来源:互联网 发布:mac美国官网价格 编辑:程序博客网 时间:2024/05/16 16:06
------- android培训、java培训、期待与您交流! ----------
Map集合:该集合存储键值对,一对对往里存。要保证键的唯一性。
增:put(K key,V value)
删:clear(Object key)
判断:Contains(Object key) return boolean;
isEmpty();
containValue(Object value)
获取:
get(Object key)
Map
|-----HashTable:底层是哈希表数据结构,不可以存入null键null值,该集合是线程同步的。
|-----HashMap底层是哈希表数据结构,允许使用null键和null值,集合是不同步的。效率更高
|-----TreeMap底层是二叉树数据结构,线程不同步。可以用于给map集合中的键进行排序和Set很像
Set底层就是用了Map集合
通过get方法的返回值是否为null判断一个键是否存在
put方法,当存放想相同键时,新的值会替代旧的值,并且返回原来 旧值
map 集合的两种取出方式
第一种:keySet:将Map中所有的键都存入Set集合中,因为set具备迭代器,可以迭代方式取出所有键,在根据get方法,获取的一个键对应的值。
增:put(K key,V value)
删:clear(Object key)
判断:Contains(Object key) return boolean;
isEmpty();
containValue(Object value)
获取:
get(Object key)
Map
|-----HashTable:底层是哈希表数据结构,不可以存入null键null值,该集合是线程同步的。
|-----HashMap底层是哈希表数据结构,允许使用null键和null值,集合是不同步的。效率更高
|-----TreeMap底层是二叉树数据结构,线程不同步。可以用于给map集合中的键进行排序和Set很像
Set底层就是用了Map集合
通过get方法的返回值是否为null判断一个键是否存在
put方法,当存放想相同键时,新的值会替代旧的值,并且返回原来 旧值
map 集合的两种取出方式
第一种:keySet:将Map中所有的键都存入Set集合中,因为set具备迭代器,可以迭代方式取出所有键,在根据get方法,获取的一个键对应的值。
map.keySet();
// 先获取map集合的所有键的Set集合,keySet()
Set<String> keySet =map.keySet();
//有了Set集合,就可以获取其迭代器
Iterator<String> it = keySet.iterator();
while(it.hasNext()){
String key = it.next();
String value = map.get(key);
System.out.println(key+"........"+value);
}
第二种方法 Set<Map.Entry<k,v>> entry: 将Map集合中的映射关系取出,存入到Set集合中,而这个关系的数据类型就是Map.Entry
将Map集合中的映射关系
将Map集合中的映射关系
Set<Map.Entry<String, String>> entrySet = map.entrySet();
Iterator<Map.Entry<String,String>> it = entrySet.iterator();
while(it.hasNext()){
Map.Entry<String, String> me =it.next();
String key = me.getKey();
String value = me.getValue();
System.out.println(key+ ">>>>>>>>>" +value);
}
什么时候使用map集合?
当发现有映射关系时,可以选择map集合。因为map集合中存放就是映射关系。
Collection工具类
根据元素的自然顺序 对指定列表按升序进行排序。
根据指定比较器产生的顺序对指定列表进行排序。
根据指定比较器产生的顺序,返回给定 collection 的最大元素。
public static <T> int binarySearch(List<? extends Comparable<? super T>> list, T key)
使用二分搜索法搜索指定列表,以获得指定对象。
返回:如果搜索键包含在列表中,则返回搜索键的索引;否则返回 (-(插入点) - 1)。
使用指定元素替换指定列表中的所有元素。
使用另一个值替换列表中出现的所有某一指定值。
反转指定列表中元素的顺序。
返回一个比较器,它强行逆转实现了 Comparable 接口的对象 collection 的自然顺序。
返回指定列表支持的同步(线程安全的)列表。
在指定列表的指定位置处交换元素。
使用默认随机源对指定列表进行置换。
Arrays工具类:
返回一个受指定数组支持的固定大小的列表。
List<String> stooges = Arrays.asList("Larry", "Moe", "Curly");
在使用时:可变参数一定要定义在参数列表的最后面
静态导入:
什么时候使用map集合?
当发现有映射关系时,可以选择map集合。因为map集合中存放就是映射关系。
Collection工具类
sort(List<T> list)
根据元素的自然顺序 对指定列表按升序进行排序。
sort(List<T> list, Comparator<? super T> c)
根据指定比较器产生的顺序对指定列表进行排序。
max(Collection<? extends T> coll, Comparator<? super T> comp)
根据指定比较器产生的顺序,返回给定 collection 的最大元素。
public static <T> int binarySearch(List<? extends Comparable<? super T>> list, T key)
使用二分搜索法搜索指定列表,以获得指定对象。
fill(List<? super T> list, T obj)
使用指定元素替换指定列表中的所有元素。
replaceAll(List<T> list, T oldVal, T newVal)
使用另一个值替换列表中出现的所有某一指定值。
reverse(List<?> list)
反转指定列表中元素的顺序。
reverseOrder()
返回一个比较器,它强行逆转实现了 Comparable 接口的对象 collection 的自然顺序。
synchronizedList(List<T> list)
返回指定列表支持的同步(线程安全的)列表。
swap(List<?> list, int i, int j)
在指定列表的指定位置处交换元素。
shuffle(List<?> list)
使用默认随机源对指定列表进行置换。
Arrays工具类:
asList(T... a)
返回一个受指定数组支持的固定大小的列表。
List<String> stooges = Arrays.asList("Larry", "Moe", "Curly");
int[] num = { 3, 2, 5 };
List<int[]> li = Arrays.asList(num);
System.out.println(li);
Integer[] nums = { 3, 4, 5 };
List<Integer> lii = Arrays.asList(nums);
System.out.println(lii);
/*
* 如果数组中的元素都是对象,那么变成集合时,数组中的 元素就直
* 接转成集合中的元素。如果数组中的元素都是基本数据类型
* 那么会将该数组做为集合中的元素存在。
*/
String[] arr1 = { "arr1u", "dsds", "sdas" };
List<String> list = Arrays.asList(arr1);
System.out.println(list);
// list.add("add")
// 将数组变成list集合,不可以使用集合的增删方法,因为
// 数组的长度是固定的。
// contains get indexOf subList() 这些方法是可以用的
// 如果增删会出异常
可变参数,其实就是上次数组的简写形式,不用每次都手动
* 高级for循环
* 格式:
* for(数据类型 变量名 : 被遍历的集合(collection)或者数组)
* {}
* 对集合进行遍历。
* 只能获取集合元素,但是不能对集合进行操作。
* 迭代器除了遍历,还可以进行remove集合中元素的动作;
* 如果是用ListIterator,还可以继在遍历过程中对集合进行增删改查的动作。
* 传统for 和高级for有什么区别呢?
* 高级for有一个局限性,必须有被遍历的目标
* 建议在遍历数组的时候,还是希望使用传统for,因为传统for可以定义角标 可变参数,其实就是上次数组的简写形式,不用每次都手动
* 建立数组对象,只要将要操作的元素作为参数传递即可。
* 隐式将这些参数封装成数组。
* */
public static void show(String str,int ... arr){
System.out.println(arr);
System.out.println(arr.length);
}
静态导入:
*
* 当类名重名时,需要指定具体的包名
* 当方法重名时,制定具备所属的对象或者类
*/
import static java.lang.System.*;//导入里面所有的静态成员
system.out.println(index);可以改成out.println(index);这样了
import static java.util.Arrays.*;//导入Arrays这个类中的所有静态成员
int index =binarySearch(arr, 1);//不用写Arrays.xxxxx
import static java.lang.System.*;//导入里面所有的静态成员
system.out.println(index);可以改成out.println(index);这样了
import static java.util.Arrays.*;//导入Arrays这个类中的所有静态成员
int index =binarySearch(arr, 1);//不用写Arrays.xxxxx
------- android培训、java培训、期待与您交流! ----------
- 黑马程序员-基础知识梳理6
- 黑马程序员-基础知识梳理
- 黑马程序员-基础知识梳理2
- 黑马程序员-基础知识梳理3
- 黑马程序员-基础知识梳理4
- 黑马程序员-基础知识梳理5
- 黑马程序员-基础知识梳理7
- 黑马程序员-基础知识梳理8
- 黑马程序员--c#基础知识梳理
- 黑马程序员_Java基础知识
- 黑马程序员-C#基础知识
- 黑马程序员 java 基础知识
- 黑马程序员_java基础知识
- 黑马程序员-C#基础知识
- 黑马程序员-html基础知识
- 黑马程序员-javascript基础知识
- 黑马程序员 集合基础知识
- 黑马程序员---- java基础知识
- 加油,开始咯
- Table排序
- POJ 2318 toys 叉积的简单运用
- C语言的变量与算术表达式
- 查找算法概述
- 黑马程序员-基础知识梳理6
- POJ 2484 A Funny Game(找规律)
- Oracle执行计划不走索引的原因总结
- POJ 2234 Matches Game(直接的NIM)
- VC++6.0调试篇:变量的观察--watch窗口的技巧(转)
- 百胜服装ERP分销端使用网络加密狗
- Oracle数据库rman环境配置详解
- Struts的html标签与普通html标签的区别之button
- 程序猿更需要有全局观的高度思考问题