学了集合中的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】案例整合以及集合实现类的区别()】
文章图片
实现类: (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);
}
}
}
打印结果为:
文章图片
实现类: (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);
}
}
}
打印结果为:
文章图片
List不同实现类的区别:
实现类 | 区别 |
---|---|
ArrayList | 底层使用数组实 现,查询效率较高,增删操作时效率较低;jdk1.2版本,线程不安全,并发效率高 |
Vector | 底层使用数组实现,查询效率较高,增删操作时效率较低; jdk1.0版本,线程安全,并发效率低 |
LinkedList | 底层使用链表实现,查询效率相对较低,增删的效率较高 |
实现类 | 区别 |
---|---|
HashSet | 为了保证元素内容不重复,存储对象对应类中需要覆盖 HashCode 和equals方法 |
LinkedHashSet | HashSet子类,根据添加的顺序进行存储 |
实现类 | 区别 |
---|---|
HashMap | JDK1.2版本,线程不安全,并发效率高,允许null作为key/value |
LinkedHashMap | HashMap子类,按照键添加的顺序进行存储 |
Hashtable | jdk1.0版本,线程安全,并发效率低,不允许null作为 key/value |
Properties | Hashtable子类, 键和值默认为String类型(通常用于加载配 置文件) |
推荐阅读
- Spring相关|Spring Boot 面试题 汇总 --- 《绝绝子》
- 牛客网后端项目实战|牛客网后端项目实战(二十五)(Redis入门)
- 程序员|Java详解(如何实现一个-redis-缓存服务,牛客视频面试)
- java|JAVA面试题 --- Redis篇(一)
- 手撕Gateway源码,今日撕工作流程、负载均衡源码
- java|SpringBoot+Redis搜索栏热搜过滤
- spring|Spring Boot + Redis 去除搜索栏热搜、不雅文字过滤功能
- 算法|SpringBoot+Redis 实现一个微博热搜!
- redis|springboot java+redis 实现简单实用的搜索栏热搜功能,不雅文字过滤功能。