java常用的集合对象_java常用实体类、集合类
java常用实体类、集合类
[转自51cto博客jichangwei的BLOG]
1:String类,字符串是常量,他们的值在创建之后不能更改,可以共享。
equals()用来比较两个字符串的值,==只有当这两个实例指向同一个字符串对象才返回true
2:线程安全的可变字符串类StringBuffer,主要操作是append()和insert()。
3:可变字符串类StringBuilder,不保证同步,用在字符串缓存区被单个线程使用的时候,比StringBuffer快。
三者的使用情况:
a)如果偶尔对剪子的字符串常量进行拼接,那么可以使用String,他足够简单而且轻量级。
b)如果需要经常对字符串进行拼接、累加操作,使用StringBuffer或者StringBuilder
c)单线程使用StringBuilder,他比StringBuffer快,多线程中选后者,他是线程安全的。
4:集合类Collection,代表多个对象的集合,分为
a)Queue类:队列类,先进先出的队列
b)List类,列表类,元素有序,且允许重复
c)Set类,集合类,元素可以有序也可以无序,不允许重复。
映射类Map:存储多个键值对。
5:Collections与Collection的区别:前者是对后者集合类进行各种操作的服务类。
a)Collection是个java.util下的接口,它提供了对集合对象进行基本操作的通用接口方法,collection接口在java类库中有很多具体的实现,它的意义是为各种具体的集合提供了最大化的统一操作方式。
b)conllections是个java.util下的实体类,它包含各种有关集合操作的静态方法,提供一系列静态方法实现对各个集合的搜索、排序、线程安全化等操作,就像一个工具类,服务于java的Collection框架。
6:列表类List
a)LinkedList链式访问,以指针相连,适合于在链表中间需要频繁进行插入和删除操作。
b)ArrayList类似数组的形式,按照序号存储,随机访问速度非常快。
c)Vector向量按照各元素序号存储,数组大小可以动态增长,对于大容量数据存储效率较高。
d)Stack堆栈,先进后出的数组。
7:这些类的对比与选择:
如果涉及到堆栈队列等操作,应该考虑List中的stack,queue
对于需要快速插入删除元素,应该使用linkedlist
如果需要快速随机访问元素,应该选用arraylist
如果程序在单线程环境中,选用非同步类
如果在多线程中,选用同步类vector、stack和hashtable以及其子类。
8:map选择
hashtable和hashmap类似,但是hashtable是同步的,但是hashmap允许null来作为key和value值。
weakhashmap是一种改进的hashmap,他对key进行弱引用,如果一个key不再被外部引用,则被gc回收。
java常用的集合对象_java常用实体类、集合类相关推荐
- java获取实体类对象_java 获取实体类对象属性值的方法
在java中我们要获得实体类对象的属性,一般情况是将实体类中的属性私有化,然后再对外提供get()与set()方法,然后再获取实体类对象的属性的时候先把对象new出来,再用变量名.get()的方法得到 ...
- java注解检验集合对象_Java 对list对象进行属性校验
ps:对list对象进行属性校验. @Validated:可以用在类型.方法和方法参数上.但是不能用在成员属性(字段)上 @Valid:可以用在方法.构造函数.方法参数和成员属性(字段)上 user实 ...
- java根据属性获取对象_java反射工具类--通过指定属性名,获取/设置对象属性值
java对象通过点运算符操作对象属性的方式没法使用for,while等循环,此工具主要解决这一问题. 例如:有一对象包含属性有一定规律 obj1: { name1: "张三", a ...
- java怎么看dao文件_java通过实体类生成dao文件
package generate; import java.io.File; import java.io.FileWriter; import java.io.IOException; import ...
- (转)java中对集合对象list的几种循环访问总结
Java集合的Stack.Queue.Map的遍历 在集合操作中,常常离不开对集合的遍历,对集合遍历一般来说一个foreach就搞定了,但是,对于Stack.Queue.Map类型的遍历,还是有一些讲 ...
- java给实体类设置默认值_java 给实体类赋默认值通用方法
package com.clamc.common.util; import java.lang.reflect.Field; import java.lang.reflect.Modifier; im ...
- 解决java.util.LinkedHashMap cannot be cast to 实体类......的问题
解决java.util.LinkedHashMap cannot be cast to 实体类-的问题 背景描述 在学习谷粒商城时,使用openfeign进行远程调用,由于有个接口返回的是R<L ...
- java构造方法 隐含三步_Java入门总结--------类和对象关系以及构造方法
Java中重写父类的方法要遵循"两同两小一大"规则, "两同"即方法名相同.形参列表相同: "两小"指的是子类方法的返回值类型应比父类方法返 ...
- java输出set集合元素_java Set集合,HashSet类详细介绍
下面要给大家介绍的就是java Set集合方面的内容,本文主要讲到了HashSet类的一些知识,主要包括了HashSet类的特点,HashSet 类的常用构造方法重载形式以及代码演示了创建两种不同形式 ...
最新文章
- 15.python操作mysql
- 第十七届全国大学智能车竞赛:第二波芯片申请向你袭来
- 某公司Java面试题
- 为什么要避免使用JavaScript中的递增(“++”)和递减(“ - ”)运算符?
- 坚实原则:接口隔离原则
- ABB机器人VGT文件_ABB机器人与焊机之间通讯方式
- ncurses其他特性:curs_set(),离开curses模式,ACS_扩展字符集,扩展库
- 『优势特征知识蒸馏』在淘宝推荐中的应用
- php的redis安装配置,Redis 的安装配置介绍_php
- Go语言核心36讲(Go语言实战与应用十九)--学习笔记
- flash builder激活
- BJFUOJ 1429
- Excel数据计数(count)
- Random不出现重复数字
- 文本相似度计算 python去停用词_python专业方向 | 文本相似度计算
- 微信支付-支付结果通知接收
- nanopi neo2 black 上电使用
- 带你认识一下“京东到家-网关系统”
- 电子时钟的模拟(C++结构体与模块化开发)
- 关于@GeneratedValue和@GenericGenerator的学习笔记
热门文章
- 数据结构(07)— 线性顺序表基本操作
- pip install nmslib 失败 (error: command ‘x86_64-linux-gnu-gcc‘ failed with exit status 1)
- Python+OpenCV 图像处理系列(4)—— 图像像素的读写、算术运算、逻辑运算及像素的统计
- visual2017中给C#项目添加配置文件
- python编程问题--第四次
- LeetCode简单题之长度为三且各字符不同的子字符串
- MindSpore应用目标
- NVIDIA Turing Architecture架构设计(上)
- Python数据挖掘:数据转换-数据规范化
- C++ set 的使用