java|Java集合【List、Set、Map】案例整合以及集合实现类的区别()

学了集合中的List、Set、Map,来进入代码演练一番吧~

java|Java集合【List、Set、Map】案例整合以及集合实现类的区别()
文章图片

实现类: (ArrayList)
package p1; import java.util.ArrayList; public class TestArrayList { public static void main(String[] args) { //创建集合对象并以手机-Phone为泛型 ArrayList list=new ArrayList<>(); //new对象两种方式 //第一种 Phone phone=new Phone("华为","黑色",10000.0); list.add(phone); //添加对象 //第二种 list.add(new Phone("苹果","白色",5000.0)); //遍历集合 for (Phone p: list) { System.out.println(p); } System.out.println("------打印输出带有-华为-品牌的手机对象信息------"); for (Phone p:list){ if (p.getBrand().equals("华为")){ System.out.println("手机品牌:"+p); } } } }//手机类---此实体类不给注释(不懂的翻之前的案例) class Phone{ private String brand; private String color; private Double price; @Override public String toString() { return "Phone{" + "brand='" + brand + '\'' + ", color='" + color + '\'' + ", price=" + price + '}'; } public String getBrand() { return brand; } public void setBrand(String brand) { this.brand = brand; } public String getColor() { return color; } public void setColor(String color) { this.color = color; } public Double getPrice() { return price; } public void setPrice(Double price) { this.price = price; } public Phone(String brand, String color, Double price) { this.brand = brand; this.color = color; this.price = price; } public Phone() { } }

打印结果为
【java|Java集合【List、Set、Map】案例整合以及集合实现类的区别()】java|Java集合【List、Set、Map】案例整合以及集合实现类的区别()
文章图片

实现类: (HashSet)
package p1; import java.util.LinkedHashSet; import java.util.Random; public class TestSetRandom { public static void main(String[] args) { //随机产生10个0-50之间的整数,存储在集合中且数据不能重复 Random random=new Random(); LinkedHashSet set=new LinkedHashSet<>(); for (int i = 0; i < 10; i++) { int num = random.nextInt(50); set.add(num); } for (Integer integer: set) { System.out.println("10个0-50之间的整数:"+integer); } } }

打印结果为
java|Java集合【List、Set、Map】案例整合以及集合实现类的区别()
文章图片

实现类: (HashMap)
package p1; import java.util.HashMap; import java.util.Map; import java.util.Set; public class TestHashMap { public static void main(String[] args) { HashMap map=new HashMap<>(); map.put("001","三娃"); map.put("002","二娃"); String value=https://www.it610.com/article/map.put("001","大娃"); System.out.println("集合中键值的个数:"+map.size()); System.out.println("被覆盖的value:"+value); System.out.println("根据键获取值:"+map.get("001")); System.out.println("判断map中是否包含某个键:"+map.containsKey("003")); System.out.println("判断map中是否包含某个值:"+map.containsValue("大娃")); //键遍历 //通过map.keySet()获取值 Set keys = map.keySet(); //通过遍历set集合获取每一个键 for(String k:keys){ //通过map.get(key)获取对于的value值 String v = map.get(k); System.out.println("键:"+k+"-"+"值:"+v); } System.out.println("------键值对遍历------"); // map.entrySet()获取键值对 Set kvs = map.entrySet(); //遍历Set---kvs 获取每一个键值对 for(Map.Entry kv:kvs){ //kv.getKey()获取键 String k = kv.getKey(); //kv.getValue()获取值 String v = kv.getValue(); System.out.println("键:"+k+"-"+"值:"+v); } } }

打印结果为
java|Java集合【List、Set、Map】案例整合以及集合实现类的区别()
文章图片

List不同实现类的区别
实现类 区别
ArrayList 底层使用数组实 现,查询效率较高,增删操作时效率较低;jdk1.2版本,线程不安全,并发效率高
Vector 底层使用数组实现,查询效率较高,增删操作时效率较低; jdk1.0版本,线程安全,并发效率低
LinkedList 底层使用链表实现,查询效率相对较低,增删的效率较高
Set不同实现类的区别
实现类 区别
HashSet 为了保证元素内容不重复,存储对象对应类中需要覆盖 HashCode 和equals方法
LinkedHashSet HashSet子类,根据添加的顺序进行存储
Map不同实现类的区别
实现类 区别
HashMap JDK1.2版本,线程不安全,并发效率高,允许null作为key/value
LinkedHashMap HashMap子类,按照键添加的顺序进行存储
Hashtable jdk1.0版本,线程安全,并发效率低,不允许null作为 key/value
Properties Hashtable子类, 键和值默认为String类型(通常用于加载配 置文件)

    推荐阅读