hashmap list序列 等 用法

待我称王封你为后i 2022-04-22 14:04 259阅读 0赞

1、如果两个对象相同,那么它们的hashCode值一定要相同;2、如果两个对象的hashCode相同,它们并不一定相同 上面说的对象相同指的是用eqauls方法比较。

  1. public class Main {
  2. public static void main(String[] args) {
  3. //初始化对象
  4. person p1= new person();
  5. p1.setAge(55);
  6. p1.setName("ss");
  7. p1.sayhello();
  8. //hashcode 针对对象
  9. int i=p1.hashCode();
  10. System.out.println(i);
  11. }
  12. }

Map

首先介绍一下什么是Map。在数组中我们是通过数组下标来对其内容索引的,而在Map中我们通过对象来对对象进行索引,用来索引的对象叫做key,其对应的对象叫做value。

  1. package com.company;
  2. import java.util.HashMap;
  3. import java.util.Iterator;
  4. import java.util.Map;
  5. public class Main {
  6. public static void main(String[] args) {
  7. //初始化HashMap
  8. HashMap<Character,Integer> map= new HashMap<>();
  9. map.put('a',3);
  10. map.put('b',2);
  11. map.put('c',6);
  12. // 重复值 会更新数据
  13. map.put('c',2);
  14. map.put('d',3);
  15. // get(key) 根据key 值找出对应的value值
  16. System.out.println(map.get('c'));
  17. // containsKey(key) 判断键是否存在
  18. System.out.println(map.containsKey('d'));
  19. // containsValue(value) 判断值是否存在
  20. System.out.println(map.containsValue(3));
  21. System.out.println("=========================");
  22. //判空
  23. System.out.println(map.isEmpty());
  24. //求大小,值是4。 因为之前重复,所以最后替换了
  25. System.out.println(map.size());
  26. System.out.println("=========================");
  27. // System.out.println(map.remove('a'));
  28. System.out.println(map.containsKey('a'));
  29. // 增强for循环 输出所有的key值 map.keySet()
  30. for(char key:map.keySet())
  31. System.out.println(key);
  32. System.out.println("=========================");
  33. // 增强for循环 输出所有的value值 map.values
  34. for(int value:map.values())
  35. System.out.println(value);
  36. System.out.println("=========================");
  37. //清空
  38. //map.clear();
  39. System.out.println(map.get('a'));
  40. System.out.println("=========================");
  41. // 利用迭代器,从Entry 中取出键,值。
  42. Iterator iter = map.entrySet().iterator();
  43. while (iter.hasNext()) {
  44. Map.Entry entry = (Map.Entry) iter.next();
  45. Object key = entry.getKey();
  46. Object value = entry.getValue();
  47. System.out.println(key + ":" + value);
  48. }
  49. }
  50. }

用hashcode实现字符串中取最大值

  1. import java.util.HashMap;
  2. import java.util.Map;
  3. public class test {
  4. public static void main(String[] args) {
  5. System.out.println(findMaxValue("abcda"));
  6. }
  7. public static Character findMaxValue(String str){
  8. if (str == null || str == ""){
  9. return null;
  10. }
  11. Character maxChar = null;
  12. int maxCount = 0;
  13. Map<Character,Integer> map = new HashMap<Character, Integer>();//将出现的字母和出现的次数放进一个map中
  14. for(int i=0; i < str.length();i++){
  15. if (map.containsKey(str.charAt(i)))
  16. map.put(str.charAt(i),map.get(str.charAt(i))+1);//如果map的key包含该字符,则+1
  17. else
  18. map.put(str.charAt(i),1);//如不map的key不包含该字符,则初始化为1
  19. if (maxCount < map.get(str.charAt(i))){
  20. maxCount = map.get(str.charAt(i));
  21. maxChar = str.charAt(i);
  22. }
  23. }
  24. System.out.println("字母"+ maxChar+"出现次数为"+maxCount);
  25. return maxChar;
  26. }
  27. }

List

序列: 有序排列可重复
1 List中可以添加任何类型的对象,包括自定义的类。
2 List是一个接口,不能实例化,需要实例化一个ArrayList或者LinkedList。List myList = new ArrayList();
3 使用myList.add(); 就可以进行添加。
4 取值的时候使用myList.get(索引),取出来的值皆是Object,需要进行强制类型转换。

package com.company;

import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;

// 列表
public class Main {

  1. public static void main(String[] args)
  2. {
  3. String a="A";
  4. String b="B";
  5. String c="C";
  6. List list = new ArrayList();
  7. list.add(a);
  8. list.add(b);
  9. list.add(c);
  10. // 实现输出方式1
  11. Iterator<String> it = list.iterator();
  12. while (it.hasNext()) {
  13. System.out.println(it.next());
  14. }
  15. // 实现输出2
  16. System.out.println("----------------分界线---------------");
  17. for (int i = 0; i <list.size() ; i++) {
  18. System.out.println(list.get(i));
  19. }
  20. }

}

发表评论

表情:
评论列表 (有 0 条评论,259人围观)

还没有评论,来说两句吧...

相关阅读

    相关 Python list 常见

    测试你对Python列表知识的60个问题 通过掌握列表基础知识来压制算法问题 图片来自Pexels的Andrew Neel 我最近做了很多算法题,发现自己对列表的理解并不尽如

    相关 list

    本文为转载文章 1.关于list容器 list是一种序列式容器。list容器完成的功能实际上和数据结构中的双向链表是极其相似的,list中的数据元素是通过链表指针串