Java中的集合和常用类
Java中的常用类:
▪ Object类
▪ Math类
▪ String类和StringBuffer类(字符串)
▪ 8种基本类型所对应的包装类
▪ java.util包中的类——Date类
Object类:
Object类是Java语言程序中所有类的父类,即承自Object类。Object类中包含了Java语言类中的所有的公共属性。
▪ toString()方法
▪ equals()方法
▪ getClass()方法
▪ clone()方法
▪ finalize()方法
枚举类:
用于储存变量的类。
package Enum;
//enum 创建枚举类的关键字
public enum Enum {
男,女
//常量
}
package Enum;
public class Test {
//测试类
public static void main(String[] args) {
//创建一个储存枚举类的值的数组
Enum[] values = Enum.values();
//循环打印
for (Enum u : values) {
System.out.println(u);
}
}
}
包装类:
包装类是将基本类型封装到一个类中,包含属性和方法,方便对象操作。包装类位于java.lang包中。
▪ 数据类型转换
▪ 有些地方只能使用包装类(引用类型)
Math类:
java.lang.Math类提供了常用的数学运算方法和两个静态常量E(自然对数的底数)和PI(圆周率)。
String类:
String类常用操作
▪ 计算字符串的长度
▪ 比较字符串
▪ 连接字符串
▪ 提取字符串
StringBuffer类:
StringBuffer是String增强版
使用StringBuffer时要声明:StringBuffer sb1 = new StringBuffer();可以直接在括号内传入字符串。
String和StringBuffer的区别:
▪ String类型是一个引用类型,进行赋值之后是在内存中开辟一个地址进行储存。String类型其实是不可改变的,但是我们又能重新赋值这是因为当你对定义过的String类型的变量进行改变时,他会重新开辟一个地址来进行储存,虽然变量名是一样的,但是他们的地址不是一样的。我们打开java.lang.String发现对String的介绍是:public final class String。因为有final这个关键字,所以他是不可改变的,一旦改变就会重新开辟一个地址进行储存,而原来地址所储存的对象是没发生改变的。
▪ StringBuffer是可变的字符串类型,对StringBuffer定义的变量进行改变时,他是在原内存上进行改变,不会生成开辟新的内存。
当我们定义一个字符串是如果这个字符串是要经常改变的建议使用StringBuffer进行定义,因为使用String定义每改变一次就会开辟一个新的内存,这样就会浪费内存,StringBuffer就不会出现这样的情况。
Date类:
表示时期和时间,提供操作日期和时间各组成部分的方法。
SimpleDateFormat类用于定制日期时间的格式
import java.text.SimpleDateFormat;
import java.util.Date; public class Dome4 { public static void main(String[] args) {
Date date = new Date(); // 创建日期对象
SimpleDateFormat formater = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");// 定制日期格式
String now = formater.format(date);
System.out.println(now);
} }
Calendar类:
用于设置和获取日期/时间数据的特定部分,Calendar类提供一些方法和静态字段来操作日历:
int get(int field) 返回给定日历字段的值
MONTH 指示月
DAY_OF_MONTH 指示一个月中的某天
DAY_OF_WEEK 指示一个星期中的某天
import java.util.Calendar;
public class Dome4 {
public static void main(String[] args) {
Calendar calendar = Calendar.getInstance();
//获取年
System.out.println(calendar.get(Calendar.YEAR));
// 获取月,这里需要需要月份的范围为0~11,因此获取月份的时候需要+1才是当前月份值
System.out.println(calendar.get(Calendar.MONTH) + 1);
// 获取日
System.out.println(calendar.get(Calendar.DAY_OF_MONTH));
// 获取时
System.out.println(calendar.get(Calendar.HOUR));
// 获取分
System.out.println(calendar.get(Calendar.MINUTE));
// 获取秒
System.out.println(calendar.get(Calendar.SECOND));
// 获取星期(英国等一些国家是从星期天为第一天开始记得)所以要减一
System.out.println(calendar.get(Calendar.DAY_OF_WEEK) - 1);
}
}
Java中的集合:
java中集合框架有三大类接口:List、Set、Map
集合的特性:集合没有固定的长度,集合的长度是由内容撑开的,获取集合则要用size而不是length。集合可以直接进行添加、删除、修改等操作。
List接口:
定义一个List集合:List list = new ArrayList();
List 接口存储一组不唯一,有序(插入顺序)的对象。ArrayList类实现了长度可变的数组,在内存中分配连续的空间。遍历元素和随机访问元素的效率比较高。LinkedList类采用链表存储方式。插入、删除元素时效率比较高。
List的常用方法及案例:

package List; import java.util.ArrayList;
import java.util.List; public class Lister {
public static void main(String[] args) {
List list = new ArrayList();
// 因为集合长度是由内容撑开的,所以不需要定义初始值 // add 在集合中添加
list.add("abc");
list.add("qwe");
list.add("zxc");
// 因为没有指定集合所存数据的类型(泛型),所以集合中的值返回的类型是object
for (Object o : list) {
System.out.print(o + " ");
}
System.out.println(); // 在指定索引添加字段(其他字段后移):在索引为1的地方添加一个123
// 如果添加字段索引前面的那一个值为空值时不会报错,但会运行错误,因为前面的索引里面没有值,不能直接往后面索引赋值
// 例如:一个集合["abc","qwe"],不能运行add(3,字段);因为索引为2的是空值,所以不能直接往后面添加
list.add(1, 123);
for (Object o : list) {
System.out.print(o + " ");
}
System.out.println(); // 获得集合中该索引的字段
System.out.println(list.get(1)); // 获得集合中该字段的索引
System.out.println(list.indexOf("abc")); // 替换指定索引位置的字段
list.set(1, "xyz");
for (Object o : list) {
System.out.print(o + " ");
}
System.out.println(); // 删除并返回指定索引字段
Object rem = list.remove(1);
//将返回的值赋值给rem,也可以不返回
System.out.print("被删除掉的字段:"+rem);
System.out.print(" 删除以后的集合:");
for (Object o : list) {
System.out.print(o + " ");
}
System.out.println(); //判断集合是否为空
System.out.println("是否为空:"+list.isEmpty());
List list2 = new ArrayList();
System.out.println("是否为空:"+list2.isEmpty()); //片段集合中是否包含指定字段
System.out.println("是否包含abc:"+list.contains("abc"));
System.out.println("是否包含abcd:"+list.contains("abcd")); }
}
Set接口:
定义一个Set集合:Set set = new HashSet();
Set接口存储一组唯一,无序的对象,HashSet 是Set接口常用的实现类,HashSet允许集合元素值为null。
Set常用的方法:操作数据的方法与List类似,Set接口不存在get()方法。
Map接口:
定义一个Map集合:Map map = new HashMap();
存储一组成对的键-值对象,提供的映射,通过key来索引,HashMap是Map接口最常见的实现类,key不允许重复,value允许重复,添加的对象将转换为Object类型。
Map接口常用的方法(使用方法和List相似):

Collections类:
Collections和Collection不同,前者是集合的操作类,后者是集合接口。
Collections提供的静态方法:
sort(): 排序
binarySearch(): 查找
fill(): 替换
关于集合的长度:集合名.size();
System.out.println(list.size());
注:Java中常用类的一些方法在我博客Java中一些内置的方法里发布的有,如有需要补充请评论留言。
Java中的集合和常用类的更多相关文章
- JAVA中的集合容器操作类
目录 JAVA中的集合容器操作类 List集合 ArrayList的操作方法说明 LinkedList Stack Set Map Queue 总结 JAVA中的集合容器操作类 Java容器类库总共分 ...
- Java中各种集合(字符串类)的线程安全性!!!
Java中各种集合(字符串类)的线程安全性!!! 一.概念: 线程安全:就是当多线程访问时,采用了加锁的机制:即当一个线程访问该类的某个数据时,会对这个数据进行保护,其他线程不能对其访问,直到该线程读 ...
- JAVA基础——Java 中必须了解的常用类
Java中必须了解的常用类 一.包装类 相信各位小伙伴们对基本数据类型都非常熟悉,例如 int.float.double.boolean.char 等.基本数据类型是不具备对象的特性的,比如基本类型不 ...
- Java中必须了解的常用类
1.Java的包装类 基本数据类型我们都很熟悉,例如:int.float.double.boolean.char等,基本数据类型不具备对象的特征,不能调用方法,一般能实现的功能比较简单,为了让基本数据 ...
- Java中的集合Collections工具类(六)
操作集合的工具类Collections Java提供了一个操作Set.List和Map等集合的工具类:Collections,该工具类里提供了大量方法对集合元素进行排序.查询和修改等操作,还提供了将集 ...
- Java中的集合(十四) Map的实现类LinkedHashMap
Java中的集合(十四) Map的实现类LinkedHashMap 一.LinkedHashMap的简介 LinkedHashMap是Map接口的实现类,继承了HashMap,它通过重写父类相关的方法 ...
- java中的集合操作类(未完待续)
申明: 实习生的肤浅理解,如发现有错误之处.还望大牛们多多指点 废话 事实上我写java的后台操作,我每次都会遇到一条语句:List<XXXXX> list = new ArrayList ...
- Java中的集合框架
概念与作用 集合概念 现实生活中:很多事物凑在一起 数学中的集合:具有共同属性的事物的总体 java中的集合类:是一种工具类,就像是容器,储存任意数量的具有共同属性的对象 在编程时,常常需要集中存放多 ...
- Java中的集合概述
Java中的集合类有两个重要的分支,分别是接口Collection(包括List,Set等)和接口Map. 由于HashSet的内部实现原理使用了HashMap,所以我们先来了解Map集合类. 1.H ...
随机推荐
- 使用js在HTML中自定义字符串格式化方法
Python中支持字符串格式化,其基本形式如下: str = "I'm {name},{age} years old" print(str.format(name="te ...
- UIResponder NSSet UITouch UIEvent
UIResponder: UIView的超类,用来响应handle(触屏.motion.响应者等)事件. NSSet:一系列的类集合(类似数组). UITouch:一个点击类.负责:点击的view,w ...
- OFDM正交频分复用---基础入门图示
@(162 - 信号处理) 整理转载自:给小白图示讲解OFDM 下面以图示为主讲解OFDM,以"易懂"为第一要义. 注:下面的讨论如果不做说明,均假设为理想信道. *** 一张原理 ...
- MySQL中有关char、varchar、int、tinyint、decimal
char.varchar属于字符串类型 1.char属于定长,能确切的知道列值的长度,也就是有多少个字符.当指定char(5)时,表示只能存5个字符,如5个英文‘a’,5个汉字‘我’,5个符号‘&am ...
- Mac系统查看端口占用和杀死进程
查看进程占用 lsof -i tcp:8080 该命令会显示占用8080端口的进程,有其 pid ,可以通过pid关掉该进程 杀死进程 kill pid 例如 kill 39394 转自:https: ...
- MyBatis学习笔记(一)
测试Demo的目录结构: com.luohao.config ->MyBatisCongfig.xml ->userMapper.xml com.luohao.Test ->Test ...
- Hibernate学习---QBC_hibernate完整用法
QBC(Query By Criteria) API提供了检索对象的另一种方式,它主要有Criteria接口.Criterion接口和Expresson类组成,它支持在运行时动态生成查询语句. Hib ...
- CentOS 7 安装Rabbitmq
第一步也是往往最重要的一步:下载安装包! Rabbitmq地址:https://github.com/rabbitmq/rabbitmq-server/releases/tag/v3.7.5 Erla ...
- HTTP协议图--HTTP 报文首部之首部字段(重点分析)
1.首部字段概述 先来回顾一下首部字段在报文的位置,HTTP 报文包含报文首部和报文主体,报文首部包含请求行(或状态行)和首部字段. 在报文众多的字段当中,HTTP 首部字段包含的信息最为丰富.首部字 ...
- EDM邮件营销激活不活跃客户群的五大策略
有很多朋友给U-Mail马工大倒苦水:我邮件群发做了大量工作,可是有一些潜在消费者却始终无动于衷,你要说他没什么用吧,可是明明显示他有打开过,你把这个地址排除出去又有点可惜了,你要说他不可或缺,可是他 ...