【Java基础】java集合类的经典用法

2021-01-08 20:25发布

4条回答
寂静的枫林
2楼 · 2021-01-11 10:58

add(T t) //添加指定元素
remove(T t) //删除指定元素
isEmpty() //集合是否为空
iterator() //获得迭代器(Iterator类型),一般用于遍历
size() //获得元素的个数
contains(T t) //是否包含某元素

十七
3楼 · 2021-01-12 14:12

单列集合的体系:

Collection     单列集合的顶层接口

List     有序的Collection的子接口

ArrayList     顺序存储,查询修改快

    Vector     数组实现 线程安全 效率低 基本不用

LinkedList     链式存储,增加删除快

Set     无序的子接口

HashSet     哈希存储,无序

LinkedHashSet     

双列集合的体系

Map     双列集合的顶层接口

HashMap     哈希表存储,线程

LinkedHashMap

    Hashtable     线程安全

    

Collection常用方法

        add(Object obj),将obj这个元素添加到集合中

remove(Object o)将o这个元素从集合中移除

isEmpty();判断集合是否为空

size()方法 ,获取集合中元素的个数

clear();将集合中的元素清空

contains(Object obj); 判断集合中是否包含obj元素


Map中常用的方法

        1、增加键值对的方法:put(K key,V value)

2、remove(Object key)  根据给定的键,删除对应的键值对

   clear();清空集合

3、获取方法

get(Object Key)  根据指定的键,获取该键对应的值

size()  获取map集合中键值对的个数

4、判断方法

containsKey(Object Key) 判断集合中是否存在某个键

containsValue(Object value)判断集合中是否存在某个值

5、修改方法

根据给定的键,修改对应的值:put(K key, V value)


Collections工具类

      binarySearch(List list, T key);在一个有序的List集合中,通过二分查找,找到key所对应的索引

      frequency(Collection c ,Object obj)返回的是obj这个元素在c集合中出现的次数

      replaceAll(List list, T oldVal, T newVal) 将list集合中的oldval都替换为newVal

      shuffle(List list) 将list集合中的元素进行随机置换

      swap(List list, int i, int j)  在指定列表的指定位置处交换元素。

      synchronizedxxx方法系列:将一个线程不安全的集合传入方法,返回一个线程安全的集合

      unmodifiablexxx方法系列:将一个可修改的集合传入方法,返回一个不可修改只读的集合 


如何使用的 List 集合来保证线程安全

    1.使用 Vector

    2.使用 Collections 中的方法 synchronizedList 将 ArrayList 转换为线程安全的 List 

    3.使用 java.util.current 包下的 CopyOnWriteArrayList(推荐)


像风没有归宿
4楼 · 2021-01-14 18:29

数组和集合的区别: 
A:长度区别 
数组的长度固定 
集合长度可变 
B:数组中可以存储基本数据类型 
集合只能存储对象 
集合类的特点: 
集合只能存储对象,集合长度是可变的,集合可以存储不同类型的对象

不同的需求,java数据提供了不同的集合类,java提供了很多个集合类,但它们的数据结构不同,它们肯定有共性的内容(存储,获取,判断等)通过不断的向上提取、得到一个集合的继承体系结构


阿姗
5楼 · 2021-01-16 20:31

数组和集合的区别: 
A:长度区别 
数组的长度固定 
集合长度可变 
B:数组中可以存储基本数据类型 
集合只能存储对象 
集合类的特点: 
集合只能存储对象,集合长度是可变的,集合可以存储不同类型的对象


相关问题推荐

  • 回答 156

    对于每一位才开始接触JAVA的新手来说,先不要管算法和数据结构,大多数简单的程序不需要用到算法和数据结构,所以当你真正需要时再去学习。编程一段时间以后,你就会知道在哪些地方用到他们。这时知道算法的名字并了解它们的功能,然后动手去实践。当我们在去...

  • 回答 93

    2个都很好就业,更关键的是要学得到东西

  • 回答 12
    已采纳

    获取Map集合中所有的key可以通过map集合的keySet()方法获取例如:    Map map = new HashMap();    map.put(xx,xx); //存放数据    //.... 省略    Set set = map.keySet();    //可以通过迭代器进行测试    Iterator iter = set.iter...

  • 回答 56
    已采纳

    不同年龄,不同掌握程度,学历,找工作城市,面试能力这是一个多方面影响的结果,如果是平均值的话,全国平均薪资14k左右

  • 回答 38

    具体学多久,根据自己的学习力,自律性、解决问题能力来决定若系统性学习,跟着讲师的节奏走,大概半年左右,有专业的讲师把课程进行规划,尽心系统学习,有问题,讲师会帮忙解决,学习的效率很高,避免了自学中出现各种问题解决不了,而耽误很多时间,可能会...

  • 回答 23
    已采纳

    (1)idea启动时会有两个快捷方式,安装完后默认生成在桌面的是32位的idea的快捷方式,如果我们使用这个快捷方式运行大项目,一般都会很卡。解决方法是找到idea的安装目录,然后进入bin文件夹,找到名称为idea64的应用程序,右键他生成桌面快捷方式。以后每次...

  • BIO与NIO、AIO的区别2020-05-19 15:59
    回答 4
    已采纳

    IO的方式通常分为几种,同步阻塞的BIO、同步非阻塞的NIO、异步非阻塞的AIO。一、BIO     在JDK1.4出来之前,我们建立网络连接的时候采用BIO模式,需要先在服务端启动一个ServerSocket,然后在客户端启动Socket来对服务端进行通信,默认情况下服务端需要...

  • Java方法的命名规则2021-04-06 19:07
    回答 31

    ava是一种区分字母的大小写的语言,所以我们在定义变量名的时候应该注意区分大小写的使用和一些规范,接下来我们简单的来讲讲Java语言中包、类、变量等的命名规范。(一)Package(包)的命名Package的名字应该都是由一个小写单词组成,例如com、xuetang9、compan...

  • 回答 2

    public class Point {    private int x;    private int y;    public int getX() {        return x;    }    public void setX(int x) {        this.x = x;    }    public int getY() {        return y;    } ...

  • 回答 6

    经典版单例模式public class Singleton {        private static Singleton uniqueInstance;//利用一个静态常量来记录singleton类的唯一实例。     private Singleton() {     }     public static  Singleton getInstance()...

  • 回答 3

    哈希表的长度一般是定长的,在存储数据之前我们应该知道我们存储的数据规模是多大,应该尽可能地避免频繁地让哈希表扩容。但是如果设计的太大,那么就会浪费空间,因为我们跟不用不到那么大的空间来存储我们当前的数据规模;如果设计的太小,那么就会很容易发...

  • 回答 14

    1. DOM(Document Object Model)        DOM是用与平台和语言无关的方式表示XML文档的官方W3C标准。DOM是以层次结构组织的节点或信息片断的集合。这个层次结构允许开发人员在树中寻找特定信息。分析该结构通常需要加载整个文档和构造层次结构,然后才...

  • 回答 19

    1)作用不同: throw用于程序员自行产生并抛出异常; throws用于声明在该方法内抛出了异常2) 使用的位置不同: throw位于方法体内部,可以作为单独语句使用; throws必须跟在方法参数列表的后面,不能单独使用。3)内容不同: throw抛出一个异常对象,且只能是...

  • 回答 11

    基本执行过程如下:1)程序首先执行可能发生异常的try语句块。2)如果try语句没有出现异常则执行完后跳至finally语句块执行;3)如果try语句出现异常,则中断执行并根据发生的异常类型跳至相应的catch语句块执行处理。4)catch语句块可以有多个,分别捕获不同类型...

  • 回答 20

    100-199 用于指定客户端应相应的某些动作。 200-299 用于表示请求成功。 300-399 用于已经移动的文件并且常被包含在定位头信息中指定新的地址信息。 400-499 用于指出客户端的错误。 400 语义有误,当前请求无法被服务器理解。 401 当前请求需要用户验证...

  • 回答 16

    异常表示程序运行过程中可能出现的非正常状态,运行时异常表示虚拟机的通常操作中可能遇到的异常,是一种常见运行错误,只要程序设计得没有问题通常就不会发生。受检异常跟程序运行的上下文环境有关,即使程序设计无误,仍然可能因使用的问题而引发。Java编译...

没有解决我的问题,去提问