java——————ArrayList,HashSet,HashMap
ArrayList
ArrayList 是一个数组队列,提供了相关的添加、删除、修改、遍历等功能。
遍历ArrayList元素时先通过范式确认元素类型
ArrayList<String> sites = **new** ArrayList<String>();
System.out.println(sites.get(1)); *// 访问第二个元素*
sites.set(2, "Wiki"); *// 第一个参数为索引位置,第二个为要修改的值*
sites.remove(3); *// 删除第四个元素*
System.out.println(sites.size());//计算 ArrayList 中的元素数量
HashSet
HashSet 基于 HashMap 来实现的,是一个不允许有重复元素的集合。
HashSet没有get
HashSet<String> sites = new HashSet<String>();
sites.add("Runoob"); // 重复的元素不会被添加
sites.remove("Taobao"); // 删除元素,删除成功返回 true,否则为 false
System.out.println(sites.size());//计算 ArrayList 中的元素数量
System.out.println(sites.contains("Taobao"));//确认元素是否存在
写入测试
package DEMO;
import java.lang.ref.SoftReference;
import java.util.ArrayList;
import java.util.HashSet;
public class JAVA01 {
//测试ArrayList和HashSet的区别
//创建ArrayList和HashSet数组并测试存入相同和不同数据
//估计hashset就是改版的ArrayList,多了一个重复不写入,避免数据冗余
public static void main(String[] args) {
//创建 ArrayList al
ArrayList<String> al = new ArrayList<String>();
//创建HashSet hs
HashSet<String> hs =new HashSet<String>();
//arraylist 根据key值取出vulue
al.add("一号");
al.add("一号");
al.add("二号");
al.add("三号");
al.add("三号");
al.add("四号");
al.add("五号");
//hashset 写入清除冗余
hs.add("一号");
hs.add("一号");
hs.add("一号");
hs.add("二号");
hs.add("三号");
hs.add("三号");
//遍历al
for (String i : al){
System.out.println(i);
}
System.out.println("ArrayList的长度为:"+al.size());
System.out.println("——————————ArrayList遍历完成");
//遍历hs
for (String i :hs){
System.out.println(i);
}
System.out.println("HashSet的长度为:"+hs.size());
System.out.println("————————————HashSet数组遍历完成");
}
}
HashMap
两两存值,前为key后为value
clear();清理所有数据
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-QdJUeXOh-1616485268324)(https://static.runoob.com/images/mix/java-map.svg)]
package DEMO;
import java.lang.ref.SoftReference;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.HashSet;
public class JAVA01 {
//测试ArrayList和HashSet的区别
//创建ArrayList和HashSet数组并测试存入相同和不同数据
//估计hashset就是改版的ArrayList,多了一个重复不写入,避免数据冗余
public static void main(String[] args) {
//ArrayList HashSet 无法指定key的类型,但是可以指定value的类型
// ArrayList<Integer> al = new ArrayList<Integer>();
// al.add("早上好");
// al.add(222);
// HashSet<Integer> hs = new HashSet<Integer>();
// hs.add("早上好");
// hs.add(2);
HashMap<String,String> hm = new HashMap<String,String>();
// hm.put(1,"早上好");
hm.put("1","早上好");
hm.put("1","早上好");//重复不写入
hm.put("2","中午好");
hm.put("3","晚上好");
// System.out.println(hm);
//运行结果:{1=早上好, 2=中午好, 3=晚上好}
// System.out.println(hm.get("1"));//:早上好------根据key值匹配value
System.out.println("keyset"+hm.keySet());
//迭代输出key和value值
for(String s:hm.keySet()){
System.out.println("HashMap的key值为:"+s+"HashMap的values值为:"+hm.get(s));
}
//输出所有value值
for (String s:hm.values()){
System.out.println(s+",");
}
}
}
HasMap的取值
package DEMO;
import java.util.*;
public class HasMap {
public static void main(String[] args) {
HashMap<Integer,Student> hm = new HashMap<Integer,Student>();
Student s1 = new Student("one",1);
Student s2 = new Student("two",2);
Student s3 = new Student("three",3);
Student s4 = new Student("four",4);
hm.put(1,s1);
hm.put(2,s2);
hm.put(3,s3);
hm.put(4,s4);
Set<Integer> studentSet = hm.keySet();
for (Integer i:studentSet){
System.out.println("取key值:"+i);
}
System.out.println("————————————————————————————————");
Collection<Student> stu = hm.values();
Iterator<Student> itstudent = stu.iterator();
while (itstudent.hasNext()){
System.out.println("取value值:"+itstudent.next());
}
System.out.println("————————————————————————————————");
Set<Map.Entry<Integer,Student>> kv = hm.entrySet();
Iterator<Map.Entry<Integer,Student>> it =kv.iterator();
while (it.hasNext()){
System.out.println("取key值和value值:"+it.next());
}
}
}