• List子接口
    有序、有下标、元组可以重复
  • List子接口相关方法
    void add(int index,Object o); //在index位置插入对象o。
    Boolean addAll(int index,Collection c): //将一个集合中的元素添加到另一个集合的index位置。
    list.containsAll(list1): 判断list中是否全部包含list1
    list.removeAll(list1): 移除list中所有属于list1的元素
    list.remove(index): 根据索引删除元素
    Object get(int index); 返回集合中指定下标的元素。
    Object get(int index,元素值); 在集合中指定下标的元素设置值。
    List subList(int fromIndex,int toIndex); //返回两个下标之间的元素。
  • List接口的使用(1)
package Javaset;import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
import java.util.ListIterator;public class demo3 {public static void main(String[] args) {// 创建集合List list = new ArrayList<>();// 添加元素list.add("Apple");list.add("Huawei");list.add("Oppo");System.out.println("元素个数:" + list.size());System.out.println(list.toString());// 2.删除元素// list.remove("Apple");// System.out.println("元素个数:"+list.size());// System.out.println(list.toString());// 3.遍历// (1)for循环for (int i = 0; i < list.size(); i++) {System.out.println(list.get(i));}// (2)增强forfor(Object object:list) {System.out.println(object);}// (3)迭代器Iterator it = list.iterator();while(it.hasNext()) {System.out.println(it.next());}// (4)使用列表迭代器(前到后),后到前的next应换成previous//listiterator是iterator的zijiekou,除了hasnext以及next之外,还有自己的特有功能,//public interface ListIterator Extends Iterator ListIterator lit = list.listIterator();while(lit.hasNext()) {System.out.println(lit.nextIndex()+":"+lit.next());}// (5)判断System.out.println(list.contains("Apple"));}
}
  • List的使用(2)
package Javaset;import java.util.ArrayList;
import java.util.List;public class demo4 {public static void main(String[] args) {List list = new ArrayList();// 1.添加list.add(20);list.add(30);list.add(40);list.add(50);list.add(60);System.out.println("元素个数:" + list.size());System.out.println(list.toString());// 2.删除// list.remove(0);删除数字20list.remove(new Integer(20));// 删除数字20System.out.println("元素个数:" + list.size());// 3.subList,返回子集合,前闭后开System.out.println(list.subList(1, 3));}
}
  • ArrayList
    1.存在java.util包中
    2.内部是用数组结构存放数据,封装数组的操作,每个对象都有下标
    3.底层会自动帮我们创建数组来存放对应引用类型的元素,内部数组默认的初始容量是10,如果不够会以1.5倍的容量增长
    4.查询快,增删数据效率会低
  • LinkedList
    1.查询慢,增删快
    2.有下标
    对象名.peek(): 查询集合中的元素,与peekFirst()、Element()作用一样
    offer(): 将指定元素添加到末尾,添加到尾部
    poll(): 移除集合的首元素
  • Map接口(哈希表、散列表)
    Java.util接口Map<K,V>
    类型参数 : K - 表示此映射所维护的键 V – 表示此映射所维护的对应的值,一定要同时指定K和V的数据类型,具体类型取决于自己的业务
    Entry<K,V>=键值对=KEY和VALUE
    特点
    1.键与值一一对应,可以根据键获取到对应的value,KEY不允许重复
    方法
    put(K,V) :添加值,必须同时指定K和V,V可以重复,K一旦重复,值会被覆盖
    void clear()
    从此映射中移除所有映射关系(可选操作)。
    boolean containsKey(Object key)
    如果此映射包含指定键的映射关系,则返回 true。
    boolean containsValue(Object value)
    如果此映射将一个或多个键映射到指定值,则返回 true。
    boolean equals(Object o)
    比较指定的对象与此映射是否相等。
    V get(Object key)
    返回指定键所映射的值;如果此映射不包含该键的映射关系,则返回 null。
    int hashCode()
    返回此映射的哈希码值。
    boolean isEmpty()
    如果此映射未包含键-值映射关系,则返回 true。
    V remove(Object key)
    如果存在一个键的映射关系,则将其从此映射中移除(可选操作)。
    int size()
    返回此映射中的键-值映射关系数。
    Collection< Type> values()
    取出Map中的值将其放在集合中,Type类型取决于Value的类型。
public static void main(String[] args) {Map<Integer,String> map = new HashMap<>();map.put(1,"卡莎");map.put(2,"薇恩");map.put(3,"卡莉斯塔");map.put(4,"伊泽瑞尔");map.put(5,"伊泽瑞尔");System.out.println(map);System.out.println(map.containsKey(3));System.out.println(map.containsKey(6));System.out.println(map.containsValue("伊泽瑞尔"));System.out.println(map.containsValue("卡莎"));System.out.println(map.equals("伊泽瑞尔"));System.out.println(map.get(3));System.out.println(map.hashCode());System.out.println(map.isEmpty());System.out.println(map.put(4,"烬"));System.out.println(map);System.out.println(map.remove(5));System.out.println(map);System.out.println(map.size());//        map.clear();
//        System.out.println(map);Collection<String> values = map.values();System.out.println(values);//Map集合的迭代/*** 方式一:遍历Map中的数据,但是Map本身没有迭代器,所以需要先转换为Set集合再迭代*Set<Key>:把Map中所有的Key取出来放到Set集合中* 使用的方法:keySet()*/Set<Integer> s = map.keySet();Iterator<Integer> it = s.iterator();while (it.hasNext()){Integer key = it.next();String value = map.get(key);System.out.println("key:"+key+";value:"+value);}/*** 方式二:遍历map集合需要先转为set集合* 这个方案是把map中的每一个键值对看作是一个个的Entry<K,V>* 一个键值对对应一个entry*/Set<Map.Entry<Integer, String>> entries = map.entrySet();Iterator<Map.Entry<Integer, String>> it2 = entries.iterator();while (it2.hasNext()){Map.Entry<Integer, String> entry = it2.next();Integer key = entry.getKey();String value = entry.getValue();System.out.println("{"+key+","+value+"}");}}
  • Set子接口
    特点: 无下标、不能重复、无序
    注意:
    1.重复的元素只会保存一次。
    2.Set集合允许存放null值。
    3.自定义对象如果想要去重,需要重写hashCode()与equals(),这样就可以根据对象的类型及属性值判断是否为同一个对象了,而不是根据地址值判断,因为Object默认实现的判断是 ==地址值

JAVA 集合(2)相关推荐

  1. java 集合 接口_Java集合之Collection接口

    1 - Java集合介绍 /* 1. 一方面, 面向对象语言对事物的体现都是以对象的形式,为了方便对多个对象 的操作,就要对对象进行存储. 2. 另一方面,使用Array存储对象方面具有一些弊 端,而 ...

  2. java 头尾 队列_超详细的java集合讲解

    1 集合 1.1 为什么会出现集合框架 [1] 之前的数组作为容器时,不能自动拓容 [2] 数值在进行添加和删除操作时,需要开发者自己实现添加和删除. 1.2 Collection接口 1.2.1 C ...

  3. java集合总结_Java中集合总结

    Java数组的长度是固定的,为了使程序能够方便地存储和操作数目不固定的一组数据,JDK类库提供了Java集合,这些集合类都位于java.util包中,但是与数组不同的是,集合中不能存放基本类型数据,而 ...

  4. 考考基础部分,谈谈Java集合中HashSet的原理及常用方法

    点击上方"方志朋",选择"设为星标" 回复"666"获取新整理的面试文章 作者:工匠初心 cnblogs.com/LiaHon/p/1125 ...

  5. Java集合框架综述,这篇让你吃透!

    点击上方"方志朋",选择"设为星标" 回复"666"获取新整理的面试文章 作者:平凡希 cnblogs.com/xiaoxi/p/60899 ...

  6. 【Java集合框架】ArrayList类方法简明解析(举例说明)

    本文目录 1.API与Java集合框架 2.ArrayList类方法解析 2.1 add() 2.2 addAll() 2.3 clear() 2.4 clone() 2.5 contains() 2 ...

  7. Java基础篇:Java集合

    文章目录 1.概述 2.Collection接口 2.1 Collection接口方法 2.2 Iterator迭代器接口 2.3 Collection子接口之:List接口 2.4 Collecti ...

  8. java奇怪的问题_一个奇怪的Java集合问题

    int size = list.size(); Integer existIndex = -1; for (int index = 0; index < size; index++) { Pho ...

  9. Java集合框架的知识总结(1)

    Java集合框架的知识总结(1) 所有集合类都位于java.util包下.集合中只能保存对象(保存对象的引用变量). Java的集合类主要由两个接口派生而出:Collection和Map,Collec ...

  10. java集合框架史上最详解(list set 以及map)

    title: Java集合框架史上最详解(list set 以及map) tags: 集合框架 list set map 文章目录 一.集合框架总体架构 1.1 集合框架在被设计时需满足的目标 1.2 ...

最新文章

  1. 十厂商发起成立软件自律联盟
  2. 鸿蒙os首批适配机型,鸿蒙OS正式版首批名单曝光,适配速度让人意外,8款机型恭喜了...
  3. leetcode 33 搜索旋转排序数组 到处是细节的好题
  4. Linux编程(2)_软件的安装和卸载
  5. 还是畅通工程 最小生成树
  6. jsp点击按钮弹出输入框_【问答3】需要点击虚拟键盘上发送(搜索)按钮的写法...
  7. oracle14 jar的pom,MyEclipse环境下如何采用Maven导入ojdbc14.jar和ojdbc6.jar | 贝壳里的海...
  8. IDEA打包Springboot项目,运行
  9. breadweb控制台下载_路由器刷breed web控制台通用版
  10. css挪动背景块位置的属性,CSS 背景位置 background-position属性
  11. python爬取淘宝数据魔方_淘宝数据魔方技术架构解析读后感
  12. 如何在Tungsten Fabric上整合裸金属服务器(附配置验证过程)
  13. Qt实现 员工培训管理系统
  14. nginx的日志格式记录真实客户端IP
  15. 计算机名打印机无法共享,打印机共享不了怎么回事 打印机共享不了原因和解决办法【详解】...
  16. 网络安全学习第6篇 - 爆破及PE文件解释
  17. 又一购物节IP诞生,38女王节如何圈人
  18. xgboost 论文
  19. 随手记安全吗?随手记手把手教你分析理财平台安全性
  20. RocketMQ - 6 生产者,顺序消息

热门文章

  1. Charles 抓包工具教程(四) Charles 如何进行断点调试
  2. mysql克隆master_科学网—Windows下Mysql的Master-Slave Replication主从复制配置 - 刘洋的博文...
  3. hotspot源码下载
  4. Java --- 堆空间大小设置与OutOfMemoryError(OOM)
  5. Android 升级 gradle 遇到的问题
  6. Java多线程之暂停线程
  7. 运行pm2命令只出现[PM2] Spawning PM2 daemon with pm2_home=/root/.pm2
  8. JS动态给变量取名字
  9. maven的modules标签作用
  10. 王者客服信息服务器,王者荣耀客服反馈在哪 客服反馈入口位置介绍