当前位置: 首页 > wzjs >正文

做美团网站代码定制网站+域名+企业邮箱

做美团网站代码,定制网站+域名+企业邮箱,雷达图 做图网站,域名解析入口一、ArrayList 是什么? 动态数组:ArrayList 是 Java 中一个可动态调整大小的数组,属于 java.util 包。 与普通数组的区别:普通数组长度固定,而 ArrayList 可以自动扩容。 泛型支持:可以存储任意类型的对象…

一、ArrayList 是什么?

  • 动态数组:ArrayList 是 Java 中一个可动态调整大小的数组,属于 java.util 包。

  • 与普通数组的区别:普通数组长度固定,而 ArrayList 可以自动扩容。

  • 泛型支持:可以存储任意类型的对象(需指定泛型,如 ArrayList<String>)。


二、基本操作(代码示例)

1. 创建 ArrayList

import java.util.ArrayList;
​
public class Main {public static void main(String[] args) {// 创建一个存储 String 的 ArrayListArrayList<String> names = new ArrayList<>();
​// 创建一个存储 Integer 的 ArrayListArrayList<Integer> numbers = new ArrayList<>();}
}

2. 添加元素

names.add("Alice");   // 添加到末尾
names.add(0, "Bob");  // 在索引 0 处插入
// 现在列表内容:["Bob", "Alice"]

3. 访问元素

String first = names.get(0);  // 获取索引 0 的元素("Bob")

4. 修改元素

names.set(1, "Charlie");  // 将索引 1 改为 "Charlie"
// 现在列表内容:["Bob", "Charlie"]

5. 删除元素

names.remove(0);          // 删除索引 0 的元素("Bob")
names.remove("Charlie");  // 直接删除元素 "Charlie"

6. 获取长度

int size = names.size();  // 当前列表长度

7. 遍历 ArrayList

// 方法 1:普通 for 循环
for (int i = 0; i < names.size(); i++) {System.out.println(names.get(i));
}
​
// 方法 2:增强 for 循环(推荐)
for (String name : names) {System.out.println(name);
}
​
// 方法 3:使用迭代器
Iterator<String> iterator = names.iterator();
while (iterator.hasNext()) {System.out.println(iterator.next());
}

三、ArrayList 的特点

  1. 动态扩容:默认初始容量为 10,当元素超过容量时,自动增加 50%(如 10 → 15 → 22 ...)。

  2. 随机访问快:通过索引访问元素的时间复杂度是 O(1)。

  3. 增删元素慢:在中间插入或删除元素需要移动后续元素,时间复杂度 O(n)。


四、常见方法速查表

方法作用
add(E e)添加元素到末尾
add(int index, E e)在指定位置插入元素
get(int index)获取索引处的元素
set(int index, E e)修改索引处的元素
remove(int index)删除索引处的元素
remove(Object o)删除指定元素(首次出现)
size()返回列表长度
contains(Object o)判断是否包含某元素
clear()清空列表

五、使用场景

  • 当需要频繁访问元素,但较少插入/删除时(如缓存数据)。

  • 需要动态调整集合大小时(代替传统数组)。


六、注意事项

  1. 非线程安全:多线程环境下推荐使用 VectorCollections.synchronizedList()

  2. 存储对象类型:只能存储对象(如 IntegerString),不能存储基本类型(如 intchar)。

  3. 初始容量优化:如果预先知道数据量较大,可通过 new ArrayList<>(100) 指定初始容量,减少扩容次数。


七、练习题目

  1. 创建一个存储整数的 ArrayList,添加 10 个随机数,然后计算它们的总和。

  2. 编写一个方法,接收一个 ArrayList<String>,返回所有长度大于 5 的字符串。


如果有任何疑问,或需要更深入的示例,请随时告诉我!我们可以一步步完善你的理解。

在 Java 的 ArrayList 中查找某个数(或对象),可以通过以下几种方法实现:


1. 使用 contains() 方法

判断集合中是否包含指定元素(返回 true/false)。

ArrayList<Integer> numbers = new ArrayList<>(Arrays.asList(5, 3, 8, 2, 7));
​
int target = 8;
if (numbers.contains(target)) {System.out.println("找到了 " + target);
} else {System.out.println("没找到 " + target);
}

2. 使用 indexOf() 方法

返回元素在集合中的索引(未找到返回 -1)。

int index = numbers.indexOf(target);
if (index != -1) {System.out.println(target + " 的索引是: " + index);
} else {System.out.println(target + " 不存在");
}

3. 手动遍历查找

如果需自定义查找逻辑(例如找大于某值的数),可以用循环遍历:

boolean found = false;
for (int num : numbers) {if (num == target) {found = true;break;}
}
System.out.println(found ? "存在" : "不存在");

4. 使用 Java 8 Stream API

通过 filterfindFirst 实现更灵活的查找:

Optional<Integer> result = numbers.stream().filter(n -> n == target).findFirst();
​
if (result.isPresent()) {System.out.println("找到了: " + result.get());
} else {System.out.println("没找到");
}

注意事项

  1. 对象比较:如果 ArrayList 存储的是自定义对象(如 Person),需要正确重写 equals() 方法,否则 contains()indexOf() 无法正确比较。

  2. 基本类型:ArrayList 不能直接存储基本类型(如 int),需使用包装类(如 Integer)。

  3. 性能contains()indexOf() 的时间复杂度是 O(n)(需要遍历列表)。


完整示例

import java.util.ArrayList;
import java.util.Arrays;
​
public class Main {public static void main(String[] args) {ArrayList<Integer> numbers = new ArrayList<>(Arrays.asList(5, 3, 8, 2, 7));int target = 8;
​// 方法1: contains()System.out.println("是否包含8? " + numbers.contains(target));
​// 方法2: indexOf()int index = numbers.indexOf(target);System.out.println("8的索引是: " + index);
​// 方法3: 遍历for (int num : numbers) {if (num == target) {System.out.println("通过遍历找到8");break;}}}
}

输出结果:

是否包含8? true
8的索引是: 2
通过遍历找到8

如果有其他具体需求(如查找多个符合条件的数),可以进一步优化代码!

http://www.dtcms.com/wzjs/236775.html

相关文章:

  • 做精美ppt网站百度导航最新版本免费下载
  • 网站没有备案可以做百度推广吗网络推广常见的方法
  • 广告公司网站设计策划网络营销的主要内容有哪些
  • 福州三六零网络小额贷款有限公司重庆seo博客
  • 互联网网站建设计划书百度人工智能
  • 台州网站建设企业制作公司网页多少钱
  • 上海浦东建设集团官方网站营销型网站和普通网站
  • sm做任务的网站有哪些互联网广告怎么做
  • 网站建设运营推广网络营销网站建设案例
  • 网站猜你喜欢代码搜索引擎有哪些网站
  • 电商平台网站建设策划书西安专业网络推广公司
  • 毕业设计代做淘宝好还是网站好网络运营好学吗
  • 网站运维可以做哪些荥阳seo
  • 迪庆公司网站开发方法网站推广广告
  • 信用卡在哪些网站上做推广市场推广计划方案模板
  • 马云将来淘汰的十个行业网站建设网络维护
  • 温州做网站关键词排名点击软件推荐
  • 内江网站建设什么是搜索关键词
  • 浦东网站建设最火的网络推广平台
  • unity3d游戏开发seo百度排名优化
  • 门户网站建设总结长尾关键词排名推广
  • 国外建筑网站app网站推广是什么
  • 怎么用vps的linux做网站正规教育培训机构
  • 西安网络建站公司南京百度推广
  • 网站qq客服显示不在线安卓优化大师下载安装
  • 北京网站维护浩森宇特百度客户端
  • 合肥网站建设正规公司提升关键词排名有哪些方法
  • 日常网站维护怎么做二十条优化措施
  • 做微商哪个网站好营销型企业网站建设的内容
  • 做网站小编怎么样最有效的恶意点击软件