今天的面试题--操作ArrayList。

本文介绍如何使用Java语言通过两种方法从ArrayList中移除符合特定条件(key1为11且key2为21)的TestBean实例。包括从右到左检索并移除及构建新ArrayList的方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

第一题:

有一个bean如下结构

public class TestBean {
public String key1;
public String key2;
public String key3;
public int value1;
public int value2;
}

把 TestBean 放到数据集合ArrayList中,移除ArrayList中 key1 =11 key2=21 的Testbean;

要求用两种方法,代码在10行以内:

第一种方法:从右到左检索ArrayList;移除复合条件的TestBean;

public ArrayList<TestBean> init(){
ArrayList<TestBean> al  = new ArrayList<TestBean>();
for(int i = 0;i<5;i++){
TestBean tb = new TestBean();
tb.key1 = "1"+i;
tb.key2 = "2"+i;
tb.key3 = "3"+i;
al.add(tb);
}
return al;
}

public static void main(String[] str){
TestMain tm = new TestMain();
ArrayList<TestBean> al_tb = tm.init();
for(int i=al_tb.size()-1;i>=0;i--){
TestBean tb = al_tb.get(i);
if(tb.key1.equals("11") && tb.key2.equals("21")){
al_tb.remove(tb);
}
}
}

第二种方法,重新构建ArrayList.

public void method2(){
TestMain tm = new TestMain();
ArrayList<TestBean> al_tb = tm.init();
ArrayList<TestBean> al_tb01 = new ArrayList<TestBean>();
for(int i=al_tb.size()-1;i>=0;i--){
TestBean tb = al_tb.get(i);
if(tb.key1.equals("11")==false || tb.key2.equals("21")==false){
al_tb01.add(tb);
}
}
al_tb = null;
}


ArrayList  是基于线性表的存储结构

LinkedList  是基于链式存储结构


### 华为OD技术面试真实题目及答案 #### 技术面常见问题与解答 #### 跨域请求解决方案 在前端开发中,跨域请求问题是常见的挑战之一。以下是几种常用的解决跨域问题的方法: - **CORS(跨源资源共享)** CORS是一种基于HTTP头的机制,允许服务器声明哪些资源可以被其他域名下的页面访问。通过设置`Access-Control-Allow-Origin`响应头来指定允许访问该资源的外部域名[^2]。 ```javascript // 浏览器发起跨域请求的例子 fetch('https://api.example.com/data', { method: 'GET', mode: 'cors' }) .then(response => response.json()) .then(data => console.log(data)); ``` #### Java基础知识问答 关于Java的基础知识也是华为OD技术面试中的一个重要部分。下面是一些典型的问题及其解答: - **Java堆栈的概念** Java程序运行时会创建两种类型的内存区域:堆和栈。其中,**栈(Stack)**用于存储局部变量、方法参数以及返回地址等短期存在的数据;而**堆(Heap)**则用来保存对象实例和其他动态分配的数据结构。两者的主要区别在于生命周期管理和垃圾回收机制的不同[^3]。 - **线程安全的Map实现类** 在多线程环境中使用的线程安全映射表主要有以下几种: - `ConcurrentHashMap`: 提供高效的并发读写操作支持; - `Hashtable`: 是较早版本中提供的同步化哈希表容器; - `Collections.synchronizedMap()`: 可以将任意Map转换成具有基本同步特性的新Map实例。 - **常用的数据结构** 对于日常工作或算法练习来说,经常接触到的一些重要Java集合框架成员包括但不限于: - List接口下实现了数组列表(`ArrayList`)、链表(`LinkedList`); - Set接口提供了不可重复元素集合的功能, 如HashSet; - Map接口定义了键值对关联关系, 上述提到过的ConcurrentHashMap就是其一种具体形式. - **ArrayList特性** ArrayList内部采用连续空间存储元素,默认情况下按照插入顺序保持稳定排列,因此它是**有序**的序列容器. ```java List<String> list = new ArrayList<>(); list.add("first"); list.add("second"); System.out.println(list); // 输出:[first, second] ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值