mip网站怎么做匹配,公司邮箱怎么查询,网站制作群系统,seo品牌优化1.题目 2.知识点
#xff08;1#xff09;HaspMap的一些基本语法 1#xff09;创建 HashMap#xff0c;用于存储键为 String 类型、值为 Integer 类型的键值对。
HashMapString, Integer map new HashMap();2#xff09;添加键值对#xff1a;
map.p…1.题目 2.知识点
1HaspMap的一些基本语法 1创建 HashMap用于存储键为 String 类型、值为 Integer 类型的键值对。
HashMapString, Integer map new HashMap();2添加键值对
map.put(apple, 5);
map.put(banana, 10);
map.put(orange, 8);3获取值
int count map.get(apple);
System.out.println(Number of apples: count);
//运行结果Number of apples: 54检查键是否存在
if (map.containsKey(banana)) {System.out.println(We have bananas!);
}
5遍历 HashMap
for (String key : map.keySet()) {int value map.get(key);System.out.println(key : value);
}6 除了 String 和 CharacterHashMap 的键的类型还可以是任何其他的引用类型例如
A整数类型HashMapInteger, String其中键是整数值是字符串。
HashMapInteger, String map new HashMap();
map.put(1, One);
map.put(2, Two);
map.put(3, Three);B自定义类HashMapMyClass, Double其中键是自定义类 MyClass 的对象值是双精度浮点数。
class Person {private String name;private int age;public Person(String name, int age) {this.name name;this.age age;}// 省略 getter 和 setter 方法
}HashMapPerson, String map new HashMap();
Person person1 new Person(Alice, 30);
Person person2 new Person(Bob, 25);
map.put(person1, Manager);
map.put(person2, Engineer);C枚举类型HashMapDayOfWeek, String其中键是枚举类型 DayOfWeek 的值值是字符串。
enum DayOfWeek {MONDAY, TUESDAY, WEDNESDAY, THURSDAY, FRIDAY, SATURDAY, SUNDAY
}HashMapDayOfWeek, String map new HashMap();
map.put(DayOfWeek.MONDAY, Monday);
map.put(DayOfWeek.TUESDAY, Tuesday);
map.put(DayOfWeek.WEDNESDAY, Wednesday);
2StringBuilder用于处理字符串的可变对象 StringBuilder 是 Java 中的一个类用于处理字符串的可变对象。与普通的字符串对象如 String不同StringBuilder 允许我们在不创建新的对象的情况下修改字符串的内容这样可以提高字符串操作的效率。在这个上下文中StringBuilder sb new StringBuilder(); 创建了一个新的 StringBuilder 对象用于存储罗马数字的字符串表示。在后续的循环中我们会不断地向 sb 中追加不同的罗马数字字符最终得到整数对应的罗马数字表示。通过使用 StringBuilder我们可以高效地构建最终的字符串表示而不必每次都创建新的字符串对象。3 sb.toString() 是 StringBuilder 类的一个方法用于将 StringBuilder 对象中的内容转换为一个普通的字符串。在这个上下文中sb.toString() 将会返回一个包含了整数对应的罗马数字表示的字符串。这个方法通常用于在需要一个普通字符串的地方使用 StringBuilder 构建的字符串 1toString() 是 Java 中常见的方法用于将对象转换为字符串表示。这个方法通常用于打印对象内容或者将对象转换为字符串类型的变量。 (4)’ ’ 用于表示字符而双引号 用于表示字符串。 在Java中char 是用于表示单个字符的数据类型而 String 是用于表示字符串的类。char 类型使用单引号 ’ 例如 ‘A’而 String 类型使用双引号 例如 “Hello”。
Integer number 42;
String str number.toString();
System.out.println(str);
//这段代码将会打印出整数 42 的字符串表示。2对于自定义的类如果没有重写 toString() 方法默认会使用 Object 类的 toString() 方法为了更好地表示对象的内容可以重写 toString() 方法返回自定义的字符串表示。
class Person {private String name;private int age;public Person(String name, int age) {this.name name;this.age age;}Overridepublic String toString() {return Person{name name , age age };}
}
Person person new Person(Alice, 30);
String str person.toString();
System.out.println(str);
//这会打印出类似于 Person{nameAlice, age30} 的字符串。(4)append 是 StringBuilder 类的方法用于向 StringBuilder 对象的末尾追加字符串、字符或其他数据。
StringBuilder sb new StringBuilder();
sb.append(Hello, );
sb.append(world!);
System.out.println(sb.toString()); // 输出 Hello, world!
StringBuilder sb new StringBuilder();
sb.append(A);
sb.append(B);
System.out.println(sb.toString()); // 输出 AB
StringBuilder sb new StringBuilder();
sb.append(42);
sb.append(3.14);
System.out.println(sb.toString()); // 输出 423.14StringBuilder sb new StringBuilder();
String str world;
sb.append(Hello, ).append(str, 0, 3); // 从字符串 str 的索引 0 处开始追加长度为 3 的部分字符串
System.out.println(sb.toString()); // 输出 Hello, wor3.思路与例子
将左小右大的情况列举出来然后还有其他情况枚举一下 左大右小的直接用上面列举的 做一下加法组合 (1)for (int i 0; i units.length; i) {这是一个 for 循环用于遍历 units 数组中的每个元素units 数组包含了所有可能用到的基本罗马数字的值按照从大到小的顺序排列。
(2)while (num units[i]) {这是一个 while 循环用于判断当前整数 num 是否大于等于当前基本罗马数字 units[i] 的值。如果是则说明需要将该基本罗马数字表示的字符添加到最终结果中。
(3)sb.append(m.get(units[i]));如果 num 大于等于 units[i]则将对应的罗马数字字符添加到 StringBuilder sb 中。通过 m.get(units[i]) 可以从 HashMap m 中获取 units[i] 对应的罗马数字字符。
(4)num - units[i];将 num 减去 units[i]表示当前整数已经被转换成了对应的罗马数字字符需要继续处理剩余的部分。
(5)return sb.toString()通过 toString() 方法将其转换为字符串并返回。
4.代码实现
import java.util.HashMap;
class Solution {public String intToRoman(int num) {HashMapInteger,String mnew HashMap();//以下是基本罗马数字的组成情况//一般情况下 罗马字符左大右下m.put(1,I);m.put(5,V);m.put(10,X);m.put(50,L);m.put(100,C);m.put(500,D);m.put(1000,M);//以下是罗马字符特殊情况左小右大m.put(4,IV);m.put(9,IX);m.put(40,XL);m.put(90,XC);m.put(400,CD);m.put(900,CM);StringBuilder snew StringBuilder();int[] arr{1000,900,500,400,100,90,50,40,10,9,5,4,1};//基本罗马数字的数组for(int i0;iarr.length;i){while(numarr[i]){s.append(m.get(arr[i]));numnum-arr[i];}}return s.toString();}
}