HashSet
1.元素不重复
2.创建的类型不能用基本类型 int不行-Integer可以 或者是其他类
添加--add() 删除--remove()
HashSet<String> set1=new HashSet<>();
set1.add("java");
set1.add("python");
set1.add("c");
set1.add("c++");
System.out.println(set1);
给个例子:
1.两个set求共同元素
再创建一个set
HashSet<String> set2=new HashSet<>();
set2.add("java");
set2.add("web");
set2.add("hello");
set2.add("c++");
System.out.println(set2);
法1:
再创建一个 把共同元素放在首set3中 set1和set2不会改变
HashSet<String> set3=new HashSet<>();
for (String s: set1) {
if(set2.contains(s)) {
set3.add(s);
}
}
System.out.println(set3);
法2:
直接在set1上操作 set1输出为重复的序列
set1.retainAll(set2);
System.out.println(set1);
2.编写程序,将一个字符串中的单词解析出来,然后将它们添加到一个HashSet中,并输出每个重复的单词、不同单词的个数及消除重复单词后的列表。
package seven;
import java.util.HashMap;
import java.util.HashSet;
public class HashSetWords {
public static void main(String[] args) {
// TODO Auto-generated method stub
String s="apple map nessersitty";
HashMap<String, Integer> map=new HashMap<String,Integer>();
HashSet<String> set=new HashSet<String>();
for (int i = 0; i < s.length(); i++)
{
String c=s.charAt(i)+"";
set.add(c);
if (map.containsKey(c))
{
int count=map.get(c);
count++;
map.put(c, count);
}
else
map.put(c, 1);
}
System.out.println(map);
System.out.println(set);
}
}
HashMap
1.key--value;
创建时类型同上
添加--put()
HashMap<String, String> map=new HashMap<>();
map.put("tom","18" );
System.out.println(map);
给个例子:
给定一个字符串数组,内容如下:
String[] words = {"no pains,no gains","well begun is half done", "where there is will,there is a way."};
编写程序,创建一个HashMap对象,它的key是英文单词,value是该单词的个数
package seven;
//import java.security.KeyStore.Entry;
import java.util.Set;
import java.util.TreeMap;
public class HashMap {
public static void main(String[] args) {
// TODO Auto-generated method stub
String[] words = {"no pains,no gains",
"well begun is half done",
"where there is will,there is a way."};
var wordsMap=new java.util.HashMap<String,Integer>();
for (String s:words) {
var str =s.split("[ ,.]");//s.split(" |\\.")
for (int i = 0; i < str.length; i++) {
wordsMap.put(str[i], wordsMap.getOrDefault(str[i], 0)+1);
}
}
System.out.println(wordsMap);
var wordsTree=new TreeMap<String,Integer>();
wordsTree.putAll(wordsMap);
System.out.println(wordsTree);
Set<String> keys=wordsMap.keySet();
var values=wordsMap.values();
// Set<Entry<String,Integer>> items=wordsMap.entrySet();
System.out.println(keys);
System.out.println(values);
// wordsMap.forEach((k,v); foreach用拉姆达接口可以遍历;
//keyset可以遍历
//entryset可以遍历
}
}
不对的地方烦请指正,谢谢。