hashmap list序列 等 用法
1、如果两个对象相同,那么它们的hashCode值一定要相同;2、如果两个对象的hashCode相同,它们并不一定相同 上面说的对象相同指的是用eqauls方法比较。
public class Main {
public static void main(String[] args) {
//初始化对象
person p1= new person();
p1.setAge(55);
p1.setName("ss");
p1.sayhello();
//hashcode 针对对象
int i=p1.hashCode();
System.out.println(i);
}
}
Map
首先介绍一下什么是Map。在数组中我们是通过数组下标来对其内容索引的,而在Map中我们通过对象来对对象进行索引,用来索引的对象叫做key,其对应的对象叫做value。
package com.company;
import java.util.HashMap;
import java.util.Iterator;
import java.util.Map;
public class Main {
public static void main(String[] args) {
//初始化HashMap
HashMap<Character,Integer> map= new HashMap<>();
map.put('a',3);
map.put('b',2);
map.put('c',6);
// 重复值 会更新数据
map.put('c',2);
map.put('d',3);
// get(key) 根据key 值找出对应的value值
System.out.println(map.get('c'));
// containsKey(key) 判断键是否存在
System.out.println(map.containsKey('d'));
// containsValue(value) 判断值是否存在
System.out.println(map.containsValue(3));
System.out.println("=========================");
//判空
System.out.println(map.isEmpty());
//求大小,值是4。 因为之前重复,所以最后替换了
System.out.println(map.size());
System.out.println("=========================");
// System.out.println(map.remove('a'));
System.out.println(map.containsKey('a'));
// 增强for循环 输出所有的key值 map.keySet()
for(char key:map.keySet())
System.out.println(key);
System.out.println("=========================");
// 增强for循环 输出所有的value值 map.values
for(int value:map.values())
System.out.println(value);
System.out.println("=========================");
//清空
//map.clear();
System.out.println(map.get('a'));
System.out.println("=========================");
// 利用迭代器,从Entry 中取出键,值。
Iterator iter = map.entrySet().iterator();
while (iter.hasNext()) {
Map.Entry entry = (Map.Entry) iter.next();
Object key = entry.getKey();
Object value = entry.getValue();
System.out.println(key + ":" + value);
}
}
}
用hashcode实现字符串中取最大值
import java.util.HashMap;
import java.util.Map;
public class test {
public static void main(String[] args) {
System.out.println(findMaxValue("abcda"));
}
public static Character findMaxValue(String str){
if (str == null || str == ""){
return null;
}
Character maxChar = null;
int maxCount = 0;
Map<Character,Integer> map = new HashMap<Character, Integer>();//将出现的字母和出现的次数放进一个map中
for(int i=0; i < str.length();i++){
if (map.containsKey(str.charAt(i)))
map.put(str.charAt(i),map.get(str.charAt(i))+1);//如果map的key包含该字符,则+1
else
map.put(str.charAt(i),1);//如不map的key不包含该字符,则初始化为1
if (maxCount < map.get(str.charAt(i))){
maxCount = map.get(str.charAt(i));
maxChar = str.charAt(i);
}
}
System.out.println("字母"+ maxChar+"出现次数为"+maxCount);
return maxChar;
}
}
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 {
public static void main(String[] args)
{
String a="A";
String b="B";
String c="C";
List list = new ArrayList();
list.add(a);
list.add(b);
list.add(c);
// 实现输出方式1
Iterator<String> it = list.iterator();
while (it.hasNext()) {
System.out.println(it.next());
}
// 实现输出2
System.out.println("----------------分界线---------------");
for (int i = 0; i <list.size() ; i++) {
System.out.println(list.get(i));
}
}
}
还没有评论,来说两句吧...