Java学习----day10——(1)API-集合

Java数组与集合对比
本文对比了Java中数组与集合的不同之处,强调了集合在存储多样类型数据、可变长度及面向对象编程中的优势。

照着此流程图学习;
这里写图片描述
根据上一篇博客学生类的对象数组的操作来看,如果后期有更多的业务操作则处理起来很麻烦,并且数组长度是事前根据具体情况而定的,非常没有弹性;

(分割线)


1.简单叙述下Java中数组和集合的区别;

  1. 数组中只能存储单一的类型的数据;集合中可以存储多种类型数据;
  2. 数据中能够存储基本数据类型和引用数据类型;集合只能存储引用型数据类型;
  3. 最最最最重要的一点数组在当时开辟空间的时候已经定好,集合的长度是可变的;而且,根据此点不同,发现数组无法应对更多的业务需求,二集合可以(面对对象编程);

记得当时计算机网络的学习方法,自顶向下的知识遍历方式。
(根据有限情报,常用类和接口:)

这里写图片描述

2.1 collection

### Java面向对象编程中常用的类 #### 1. **Object 类** `Object` 是所有 Java 类的祖先(根基类),每个类都隐式或显式地继承自 `Object` 类。这意味着所有的 Java 对象都可以调用 `Object` 中定义的方法,例如 `toString()`、`equals(Object obj)` 和 `hashCode()` 等方法[^1]。 以下是 `Object` 类的一些常用方法: - `public String toString()`: 返回该对象的字符串表示形式。 - `public boolean equals(Object obj)`: 判断当前对象是否等于指定的对象。 - `protected void finalize() throws Throwable`: 当垃圾回收器决定释放此对象所占用的空间时,会自动调用此方法。 - `public int hashCode()`: 返回该对象的哈希码值。 这些方法通常会被子类重写以适应特定的需求。 --- #### 2. **String 类** `String` 类用于处理不可变的字符序列。它是 Java 编程中最常使用的类之一。由于其不可变性,在多线程环境中非常安全[^2]。 一些常见的操作包括: - 字符串连接:通过 `+` 或者 `concat(String str)` 方法完成。 - 子串提取:使用 `substring(int beginIndex, int endIndex)` 方法。 - 大小写转换:利用 `toLowerCase()` 和 `toUpperCase()` 方法。 示例代码如下: ```java String greeting = "Hello"; System.out.println(greeting.toUpperCase()); // 输出 HELLO ``` --- #### 3. **Integer 类和其他包装类** `Integer` 是基本数据类型 `int` 的包装类。它提供了许多有用的静态方法来处理整数类型的数值运算和转换[^3]。 其他类似的包装类还包括: - `Boolean` (对应布尔类型) - `Double`, `Float` (对应浮点类型) - `Character` (对应字符类型) 以下是一个简单的例子展示如何创建并比较两个 `Integer` 对象: ```java Integer a = new Integer(42); Integer b = Integer.valueOf("42"); if (a.equals(b)) { System.out.println("Values are equal."); } ``` --- #### 4. **ArrayList 类** `ArrayList` 属于集合框架的一部分,实现了动态数组的功能。它可以存储任意数量的对象,并允许随机访问其中的元素。 主要特点有: - 动态调整大小。 - 提供快速的随机访问能力。 - 不适合频繁插入删除场景下的性能优化需求。 实例化方式以及常见操作演示: ```java import java.util.ArrayList; ArrayList<String> list = new ArrayList<>(); list.add("Apple"); // 添加元素 list.remove(0); // 移除索引位置上的元素 for (String item : list) { System.out.println(item); } ``` --- #### 5. **HashMap 类** `HashMap` 实现了基于键值对的数据结构——散列表。它的特点是能够高效地执行查找、插入和删除操作。 典型用途包括缓存机制的设计或者关联不同实体之间的映射关系。下面是一段简单程序片段用来初始化一个 HashMap 并对其进行查询: ```java import java.util.HashMap; HashMap<Integer, String> map = new HashMap<>(); map.put(1, "One"); map.put(2, "Two"); // 查询是否存在某个 key-value pair if (map.containsKey(1)) { System.out.println(map.get(1)); // 输出 One } ``` --- #### 6. **Date 和 Calendar 类** 时间日期相关的处理经常需要用到 `Date` 及其改进版本 `Calendar` 来获取系统当前时间和日期信息。 虽然现代项目更倾向于采用 JSR-310 定义的新 API (`LocalDateTime`) 替代旧有的 Date/Time 库,但在遗留代码里仍然广泛存在这两种传统实现方式。 样例代码如下所示: ```java import java.util.Date; import java.util.Calendar; Date today = new Date(); Calendar cal = Calendar.getInstance(); cal.setTime(today); System.out.println(cal.YEAR + "-" + cal.MONTH + "-" + cal.DAY_OF_MONTH); ``` ---
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值