栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

Java集合类

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Java集合类

集合类 1.特点

提供一种存储空间可变的存储模型,存储的数据容量可以随时发生改变。
ArrayList
main方法里

ArrayList arr = new ArrayList<>();
	arr.add("hello");//添加
	arr.add("world");//添加
	arr.add("Java");//添加
	arr.remore("world");//删除
	arr.remore(0);//删除
	arr.set(2,“JavaEE”);//修改
	System.out.print(arr.get(2));//返回指定索引处元素
	arr.size();//返回元素个数
2.体系结构

集合 接口和实现类

  1. Collection 单列
    1.1 List 可重复
    1.1.1 ArrayList
    1.1.2 linkedList
    1.1.3 …
    1.2 Set 不可重复
    1.2.1 HashSet
    1.2.2 TreeSet
    1.2.3 …
  2. Map 双列
    2.1 HashMap
    2.2 …
3.Collection
  1. 创建Collection集合的对象(多态的方式)
Collection c = ArrayList<>();
	c.add("hello");//添加
	c.add("world");//添加
	c.add("Java");//添加
	c.remore("world");//删除
	//c.clear();//清空
	c.contains("Java");//是否包含
	c.isEmpty();//是否为空
	c.size();//长度
  1. Iterator:迭代器
    next():返回下一元素
    hasNext:有元素 返回true
Collection c = ArrayList<>();
	c.add("hello");//添加
	c.add("world");//添加
	c.add("Java");//添加
Iterator it = c.iterator();
while(it.hasNext()){
	System.out.print(it.next());
}
4.List
  1. 特点:
  • 有序:存储和取出的顺序一致
  • 可重复:存储的元素可以重复

特有方法(指定索引)
for循环遍历

List c = ArrayList<>();
	c.add("hello");//添加
	c.add("world");//添加
	c.add("Java");//添加
for(int i=0; i 

并发修改异常(迭代器导致,可用for替代)
ListIteeator:列表迭代器(List集合特有)
增强for

  1. 子类
    ArrayList:底层数据结构是数组,查询快,增删慢
    linkedList:底层数据结构是链表,查询慢,增删快
    linkedList特有方法
    addFirst()
    addLast()
    getXxx()
    removeXxx()
5.Set
  1. 特点
  • 不包含重复元素的集合
  • 没有带索引的方法,所以不能使用普通for
  1. HashSet
    对集合的迭代顺序不作任何保证
    哈希值:是JDK根据对象的地址或者字符串或者数字算出来的int类型的数值Object类中可以获取哈希值(hashCode():返回对象的哈希码值)
    特点:
    a.底层数据结构是哈希表
    b.对集合的迭代顺序不作任何保证
    c.没有带索引的方法,所以不能普通for
    d.由于Set集合,不能包含重复元素
    保证对象元素的唯一性,需要重写equals()和hashCode()方法。
  2. linkedHashSet
    特点:
    a.哈希表和链表实现Set接口,具有可预测的迭代顺序
    b.由链表保证元素有序,存储和取出顺序一致
    c.由哈希表保证唯一,不重复
  3. TreeSet
    特点:
    a.元素有序,按照一定规则排序,取决于构造方法
    TreeSet():自然排序
    TreeSet(Comparator comparator):指定比较器排序
    b.没索引,不普通
    c.Set集合,不重复
    集合存储的是引用类型,所有的基本类型用对应的包装类类型。
    自然排序Comparable的使用:
    无参构造
    TreeSet< student > ts = new TreeSet<>();
    实现Comparable接口,重写compareTo(To)方法
    implements Comparable < Student >{
    public int compareTo(Student s){
    int num = this.age - s.age;//从小到大,1(this当前元素,s上个元素)
    num2 = num == 0 ? this.name.compareTo(s.name):num;//姓名(字符串实现了接口,本身就可以自然排序)
    return num2;
    }
    }
    比较器的使用:
    让集合构造方法接收Comparator的实现类对象,重写compare(To1,To2)方法
    TreeSet< student > ts = new TreeSet<>(new comparator(){
    public int compare(Student s1,Student s2){
    //this.age - s.age
    //s1,s2
    int num = s1.getAge() - s2.getAge();//从小到大,1(this当前元素,s上个元素)
    num2 = num == 0 ? s1.getName().compareTo(s2.getName()):num;//姓名(字符串实现了接口,本身就可以自然排序)
    return num2;
    }
    });
6.Map

特点:
Interface Map< K,V > K:键的类型,V:值的类型
将键映射到值的对象;不能包含重复的键,每个键可以映射到最多一个值

Map map =new HashMap();
	map.put("1","test");
	map.put("2","test2");
	map.put("3","test3");
	map.remove("3");
	//map.clear();
	map.containsKey("1");
	map.containsValue("test");
	map.isEmpty();
	map.size();
//hashMap重写了toString方法
System.out.println(map);//输出集合对象
Map map =new HashMap();
	map.put("1","test");
	map.put("2","test2");
	map.put("3","test3");
//根据键获取值 //未找到键返回null
map.get("1");
//获取所有键的集合
Set keySet = map.keySet();
//获取所有值的集合
Collection values = map.values();

遍历
方式一
键找值遍历:

Map map =new HashMap();
   map.put("1","test");
   map.put("2","test2");
   map.put("3","test3");
//获取所有键的集合
Set keySet = map.keySet();
   for(String key : keySet){
   String value = map.get(key);
   System.out.println(key+","+value);
}

** 方式二 **
按照键值对对象找键和值遍历:
获取所有键值对对象的集合
Set> entrySet():获取所有键值对对象的集合
遍历键值对对象的集合,得到每一个键值对对象
用增强for实现,得到每一个键值对的对象
根据键值对对象获取键和值
用getKey()得到键
用getValue()得到值

Map map =new HashMap();
  map.put("1","test");
  map.put("2","test2");
  map.put("3","test3");
Set> entrySet = map.entrySet();
  for(Map.Entry m : entrySet){
  String key = m.getKey();
  String value = m.getValue();
  System.out.println(key+","+value);
}

集合嵌套 外=》内
Collections 是针对集合操作的工具类
常用方法:
Collections.sort(list);//升序
Collections.reverse(list);//反转
Collections.shuffle(list);//洗牌

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/333132.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号