Map练习

public class MapDemo {
 public static void main(String[] args) {
// getKeyV();
// getWor();
//  String str="abcdv,.,.s,.,abcda";
//  charStr(str);
//  show(1,3);
//  Properties pro=System.getProperties();
//  for(Object obj:pro.keySet())
//  {
//   String string=(String) pro.get(obj);
//   System.out.println(obj+"------"+string);
//  }
//  Date date=new Date();
//  System.out.println(date+"\n");
//  Calendar  c=Calendar.getInstance();
//  System.out.println(c.get(c.YEAR)+"\n"+c);
  for(int x=0; x<5; x++){
   int t=(int) (Math.random()*10+1);
   System.out.println(t);
  }
  
 }
 public static void getKeyV()
 {
  Map<String,String> map=new HashMap<String, String>();
  map.put("02", "beijing");
  map.put("01", "tianjing");
  map.put("03", "shanghai");
  map.put("04", "nanjing");
  Set<Map.Entry<String, String>> entrySet=map.entrySet();
  Iterator<Entry<String, String>> it=entrySet.iterator();
//  Set<String> keySet=map.keySet();
//  Iterator<String> it1=keySet.iterator();
  while(it.hasNext())
  {
   Map.Entry<String, String> entry=it.next();
   String key=entry.getKey();
   String value=entry.getValue();
   System.out.println(key+"---"+value);
  }
 }
 public static void getWor()
 {
  Map<Worker, String> map=new TreeMap<Worker, String>(new WorNum());
  map.put(new Worker("zhaosi1",19), "shanghai");
  map.put(new Worker("zhaosi2",21), "nanjing");
  map.put(new Worker("zhaosi4",18), "tianjin");
  map.put(new Worker("zhaosi3",32), "shanghai");
  map.put(new Worker("zhaosi5",18), "tianjin");
  map.put(new Worker("zhaosi5",18), "tianjin");
  Set<Entry<Worker, String>> entrySet=map.entrySet();
  Iterator<Entry<Worker, String>> it=entrySet.iterator();
//  Set<String> keySet=map.keySet();
//  Iterator<String> it1=keySet.iterator();
  while(it.hasNext())
  {
   Entry<Worker, String> entry=it.next();
   Worker worker=entry.getKey();
   System.out.println(worker.getAge()+"---"+worker.getName()+"----"+worker);
  }
 }
 public  static void charStr(String str) {
  char[] chs=str.toCharArray();
  Map<Character,Integer> map=new TreeMap<Character,Integer>();
  int count=0;
  for(int x=0;x<chs.length;x++)
  {
   if(!(chs[x]>='a'&&chs[x]<='z'||chs[x]>='A'&&chs[x]<='Z'))
    continue;
   Integer value=map.get(chs[x]);
//   if(value==null)
//    map.put(chs[x], 1);
//   else
//   {
//    value=value+1;
//    map.put(chs[x], value);
//   }
   if(value!=null)
    count=value;
   count++;
   map.put(chs[x], count);
   count=0;
   
  }
  System.out.println(map);
  StringBuilder sb=new StringBuilder();
  Set<Map.Entry<Character, Integer>> entry=map.entrySet();
  Iterator<Map.Entry<Character, Integer>> it=entry.iterator();
  while(it.hasNext())
  {
   Map.Entry<Character, Integer> me =it.next();  
    sb.append(me.getKey()+"("+me.getValue()+")");      
  }
   String string=sb.toString();
   System.out.println(string);
 }
 public static void show(int... arr)
 {
  System.out.println(arr.length);
 }
}
class Worker implements Comparable<Worker>
{
 private String name;
 private int age;
 public int getAge()
 {
  return age;
 }
 public void setAge(int age)
 {
  this.age = age;
 }
 Worker(String name,int age)
 {
  this.name=name;
  this.age=age;
 }
 public void setName(String name)
 {
  this.name=name;
  
 }
 public String getName()
 {
  return name;
 }
 public int compareTo(Worker o)
 {
  // TODO Auto-generated method stub
  int num =new Integer(this.age).compareTo(new Integer(o.age));
  if(num==0)
   return this.name.compareTo(o.name);
  return num;
 }
 public int hashCode()
 { 
  return name.hashCode()+age*21;  
 }
 public boolean equals(Object obj)
 {
  if(!(obj instanceof Worker))
   throw new ClassCastException("类型那个不匹配");
  Worker w=(Worker)obj;
  return this.name.equals(w.name)&this.age==w.age;
  
 }
}
class WorNum implements Comparator<Worker>
{
 public int compare(Worker o1, Worker o2) {
  // TODO Auto-generated method stub
  int num=o1.getName().compareTo(o2.getName());
   if(num==0)
    return new Integer(o1.getAge()).compareTo(new Integer(o2.getAge()));
  return num;
 }
}

### 关于 Map 数据结构和函数的编程练习 Map 是一种常见的数据结构,在许多编程语言中有不同的实现形式,比如 Python 中的字典 (dictionary),C++ 的 `std::map` 和 Java 的 `HashMap`。以下是几个涉及 Map 数据结构或函数的经典编程练习题: #### 1. 字符串字符频率统计 编写一个程序来计算给定字符串中每个字符出现的次数并存储在一个映射表中。 ```python def char_frequency(s): freq_map = {} for c in s: if c not in freq_map: freq_map[c] = 0 freq_map[c] += 1 return freq_map result = char_frequency("hello world") print(result) # 输出 {'h': 1, 'e': 1, 'l': 3, 'o': 2, ' ': 1, 'w': 1, 'r': 1, 'd': 1} ``` 此代码片段展示了如何利用 map 来记录字符及其对应的频次[^1]。 #### 2. 单词计数器 设计一段代码用于读取文本文件中的单词,并创建一个 map 表示每个唯一单词以及它在整个文档中出现的次数。 ```python from collections import defaultdict def word_count(file_path): counts = defaultdict(int) with open(file_path, 'r') as file: for line in file: words = line.split() for word in words: counts[word.lower()] += 1 return dict(counts) counts_result = word_count('example.txt') print(counts_result) ``` 上述例子说明了通过遍历文件每一行并将每行拆分为单独词语的方式构建了一个基于默认字典的对象,默认字典会自动初始化不存在键值为零的情况[^2]。 #### 3. 反转键值对 假设有一个已存在的关联数组或者哈希表,请写一个方法用来交换所有的 key-value 对的位置形成新的反转后的集合。 ```python def invert_dict(original_dict): inverted = {value: key for key, value in original_dict.items()} return inverted original = {"apple": "fruit", "carrot": "vegetable"} inverted = invert_dict(original) print(inverted) # 输出 {'fruit': 'apple', 'vegetable': 'carrot'} ``` 这里提供了一种简洁的方法去完成这个任务——借助推导式语法快速生成一个新的倒置版本的地图对象[^3]。 --- ###
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

csdn_金手指

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值