java学习第12天1.3

java学习第12天1.3java

HashMapgit


public class HashMapDemo {
 public static void main(String[] args) {
  //放值
  //key   value 都要使用泛型
  HashMap<Integer, String> map = new HashMap<Integer, String>();
  map.put(1, "第1");   // 1 -- 1
  map.put(1, "第2");
  map.put(1, "第3");
  
  //{1=第3}   map  中 key是惟一的,若是重复put进去的话那么,
  //后面的值会覆盖前面的值
  //缘由:map 中 key使用经过set存放的,因此,key不能重复,也能够塞null
  //map.put(null, "null");
  map.put(null, null);
  System.out.println(map);
  
  //获取值
  HashMap<Integer, String> map2 = new HashMap<Integer, String>();
  map2.put(1, "第1");   // 1 -- 1
  map2.put(5, "第2");
  map2.put(3, "第3");
  System.out.println(map2.get(3));
  map2.put(null, null);
  //null  get获取值时,是经过key进行获取,若是map中没有这个key时,返回的是null
  System.out.println(map2.get(5));
  //null
  System.out.println(map2.get(null));
  //判断map中是否有某个key的时候能经过get返回值是不是null值进行判断么?
  //答案是不能,同样使用containsKey  containsValue 进行判断key 
  //或者value 是否存在
  System.out.println(map2.containsKey(null));
  System.out.println(map2.containsValue(null));
  
  //Map的遍历
  System.out.println("-------Map的遍历--------------------------");
  
  System.out.println("第一种遍历..........................");
  //第一种遍历
  Set<Integer> keySet = map2.keySet();   //key的集合
  //System.out.println(keySet);
  for(Integer integer : keySet){
   System.out.println("key:" + integer + " value:" + map2.get(integer));
  }
  
  System.out.println("第二种遍历..........................");
  //第二种遍历   //Set<Map.Entry<Integer,String>>
  Set<Map.Entry<Integer, String>> entrys = map2.entrySet();
  
  for(Map.Entry<Integer, String> entry : entrys){
   System.out.println("key:" + entry.getKey() + " value:" + entry.getValue());
  }
  
  //返回值的集合
  //map2.values();
  
  
  
  
  
  
 }
}
----------------------------------------------------------------------------编程

Comparator数组

 

public class Test {
 public static void main(String[] args) {
  
  //若是使用自定义类实现Comparable 这个接口,那么排序的策略就固定了,要修改只能
  //修改代码,编程里面说:代码已经固化了
  //按id排序
  TreeSet<Student> treeSet4 = new TreeSet<Student>();
  treeSet4.add(new Student(1, 1));
  treeSet4.add(new Student(1, 1));
  treeSet4.add(new Student(1, 1));
  treeSet4.add(new Student(1, 1));
  treeSet4.add(new Student(1, 1));
  
  //按score排序
  dom

  //若是使用Comparator这个接口,它做用的对象是TreeSet跟添加进去的Student元素
  //没有编码上的关联,只有调用的关系,因此若是要换比较策略时不须要修改student代码
  TreeSet<Student> treeSet = new TreeSet<Student>(new Comparator<Student>() {ide

   @Override
   public int compare(Student o1, Student o2) {
    return o1.id - o2.id;
   }
  });
  treeSet.add(new Student(1, 1));
  treeSet.add(new Student(1, 1));
  treeSet.add(new Student(1, 1));
  treeSet.add(new Student(1, 1));
  treeSet.add(new Student(1, 1));
  
  
  TreeSet<Student> treeSet2 = new TreeSet<Student>(new Comparator<Student>() {学习

   @Override
   public int compare(Student o1, Student o2) {
    return o1.score > o2.score ? -1 : 1;
   }
  });
  treeSet.add(new Student(1, 1));
  treeSet.add(new Student(1, 1));
  treeSet.add(new Student(1, 1));
  treeSet.add(new Student(1, 1));
  treeSet.add(new Student(1, 1));编码

  TreeSet<Integer> treeSet3 = new TreeSet<Integer>();
  treeSet3.add(1);
  treeSet3.add(2);
  treeSet3.add(3);
  
  new Integer(1).compareTo(1);
  
 }
}
----------------------------------------------------------------------------对象


/*
 * 1.统计字符串中每一个字母出现的次数
 * ECALIYHWEQAEFSZCVZTWEYXCPIURVCSWTDBCIOYXGTEGDTUMJHUMBJKHFGUKNKN
 */
public class Test {
 public static void main(String[] args) {
  
  /*第一步:
  Map  --->   key    没有重复字母
    --->   value  字母重复次数
  第二步:*/
  
  HashMap<Character, Integer> map = new HashMap<Character, Integer>();
  String str = "ECALIYHWEQAEFSZCVZTWEYXCPIURVCSWTDBCIOYXGTEGDTUMJHUMBJKHFGUKNKN";
  for(int i = 0; i < str.length(); i++){
   
   Character key = str.charAt(i);  //获取key值
   Integer value = map.get(key);  //null  //获取value 
  // System.out.println(value);
  
   if(!map.containsKey(key)){  //若是map 中不存在这个key那么,塞进去,value 1
    map.put(key, 1);
   }else{
    map.put(key, value + 1);//若是map 中存在这个key那么塞进去(覆盖原key),value +1
   }
  }
  System.out.println(str);
  for(Map.Entry<Character, Integer> entry : map.entrySet()){
   System.out.println("字母:" + entry.getKey() + " 次数:" + entry.getValue());
  }
  
  
  
---------------------------------------------------------------------------排序


一、随机生成有50个元素的数组,计算每一个数字出现的次数。【一个临时变量,循环多少比对】【使用Map最简便】
例如:
{1,2,3,4,6,2,4,1,2}
1出现的次数:2次
2出现的次数:2次
3出现的次数:1次
4出现的次数:2次
6出现的次数:1次
  
 }
}
--------------

代码

public class Digit {

 public static void main(String[] args) {
  Random random = new Random();
  int[] ary = new int[20];
  for(int i = 0;i<20;i++){
   ary[i] = random.nextInt(10);
   System.out.print(ary[i]);
  }

  System.out.println();
  HashMap<Integer,Integer> map = new HashMap<Integer,Integer>();

  for(int i = 0;i<ary.length;i++){
   if(map.containsKey(ary[i])){
    map.put(ary[i],map.get(ary[i]) + 1);
   }else{map.put(ary[i],1);}
  }

  Set<Map.Entry<Integer,Integer>> enry = map.entrySet();  for(Map.Entry<Integer,Integer> en : enry){   System.out.println("数字:" + en.getKey() + "出现了" + en.getValue());  }           }}

相关文章
相关标签/搜索