黑马程序员_JavaSE基础19 之 LinkedHashMap Collections Arrays Map集合

----------------------                  android培训、java培训、期待与您交流!                    ---------------------
JavaSE_19  笔记 
Java语言基础之  LinkedHashMap Collections Arrays Map集合
1、
   LinkedHashMap : 实现的是有序,即如何存进去就如何取出来。    
   TreeMap:  实现的是排序。
 Acer_   yanfengfeng ;
2、事例:使用Map结合来操作字母次数
  /**
 * 记录字母次数的代码
 * 打印结果: a(2) b(1) ...
 * 思路:
 * ①能存储映射关系的容器有 数组和Map集合。
 * ②因为没有有序编号,所以使用Map集合来存储。
 * ③因为要保证唯一性且有顺序,所以使用TreeMap集合。
 * 
 * @param args
 */
public static void main(String[] args) {
String str="gggabcabcab  ch";
String s=getCharCount(str);
System.out.println(s);
 
}
 
//指定容器得到 映射关系
private static String getCharCount(String str) {
char[] chs=str.toCharArray();
Map<Character,Integer> map=new TreeMap<Character,Integer>();
for(int i=0;i<chs.length;i++){
if(!(chs[i]>='a'&&chs[i]<='z'||chs[i]>='A'&&chs[i]>='Z')) //踢出空格
continue;
Integer value=map.get(chs[i]);
if(value==null){
map.put(chs[i], 1);
}else{
map.put(chs[i], value+1);
}
}
return mapToString(map);
}
 
//将map集合转为指定格式
private static String mapToString(Map<Character, Integer> map) {
StringBuilder sb=new StringBuilder();
Iterator<Character> it=map.keySet().iterator();
while(it.hasNext()){
Character key=it.next();
Integer value=map.get(key);
sb.append(key+"("+value+")");
}
return sb.toString();
}
3、集合框架 之 Collections 
① 排序 Collections.sort( list );  //对list集合进行指定顺序的排序。
② 交换 swap( list ,i ,j ) // 在集合列表指定位置交换元素。
4、集合框架 之 数组Arrays
①  Arrays.asList(数组) ; 将数组转成集合。
好处:因为数组的长度是固定的,所以对于集合的增删方法时不可以使用的,否则会发生异常。
注意:如果数组的中的元素是对象,那么转成集合时,直接将数组中的元素作为集合中的元素进行存储。比如 Integer arr={11,22,33} ; 若果数组中的元素师基本类型数值,那么会将数组作为集合中的元素进行存储。
比如 int[] arr={ 11,22,33}; List list=Arrays.asList(arr); //此时存储的只有一个对象作为元素进行存储。
5、Collection之 将集合转为数组
①使用特点:集合转为数组可以对集合中的元素原本操作的方法进行限定,不允许对其进行增删。
② 注意到:如果长度小于集合的size,那么该方法就会创建一个同类型并和集合相同的size的数组。如果长度大于集合的size,那么该方法就会使用指定的数组,存储集合中的元素,其它位置默认为Null。
②事例:
  List<String> list= new ArrayList<String>();
  String[] arr=list.toArray<>(new String[5]);  //将集合中的元素存储到字符串数组中;
  System.out.println(Arrays.toString( arr ));  //将数组以集合形式打印输出。
6、JDK5.0新特性 之 ForEache循环
① 格式  
for ( 类型 变量 : Collection 集合|数组 )  { // }
  例如:  for( String s : list ) { }
② 高级for注意点
  Foreach只用于遍历;若要对元素进行操作则使用 Iterator ;
 
7、传统for和高级for的区别?
① 传统for可以完成对语句执行很多次,因为可以控制循环的增量和条件。
② 高级for是一种简化形式。它必须有被遍历的目标。该目标要么是数组,要么是collection单例集合。
③ 对数组的遍历如果仅仅是获取数组中的元素,可是使用高级for.
④ 如果要对数组的角标进行操作建议使用传统for.
 
8、使用高级for来操作Map集合两种方式:
//第一种:使用for遍历map键的集合
for(Integer key : map.keySet()){
String value=map.get(key);
System.out.print(key+"::"+value);
}
//第二种:使用for遍历整个map集合
for(Map.Entry<Integer, String> me:map.entrySet()){
Integer key=me.getKey();
String value=me.getValue();
System.out.print(key+"::"+value);
}
9、JDK5.0特性 之 函数可变参数
① 格式
   Public static int newAdd ( int ... arr ) {  }  //
② 注意点
  函数的可变参数其实就是一个数组,但是接收到是数组的元素,自动将这些元素封装成数组,从而简化了调用者的书写。同时,可变参数类型,必须定义在参数列表的结尾。
 
10、JDK5.0特性 之 静态导入
 Import static java.util.Collections.sort // 静态导入,其实导入的是类中的静态成员;
 Import staitc java.util.Collection.* // 导入全部静态成员;
 
 
                                                                   2012/9/14     By  Mary_K
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值