java new 一个list集合里面放对象_超详细的Java面试题汇总(基础篇+框架篇)
时间: 2024-02-07 15:04:07 浏览: 161
好的,针对您的问题,您可以使用以下代码创建一个List集合并向其中添加对象:
```java
List<Object> list = new ArrayList<>();
Object obj1 = new Object();
Object obj2 = new Object();
list.add(obj1);
list.add(obj2);
```
在这个例子中,我们创建了一个List集合,并向其中添加了两个Object类型的对象obj1和obj2。需要注意的是,List集合中可以存放任意类型的对象,包括自定义的类对象。
如果您需要向List集合中添加的是自定义的类对象,则需要先创建该类的对象,然后再将其添加到List集合中。例如:
```java
class MyClass {
private int id;
private String name;
// 构造方法、getter和setter方法省略
}
```
```java
List<MyClass> list = new ArrayList<>();
MyClass obj1 = new MyClass(1, "张三");
MyClass obj2 = new MyClass(2, "李四");
list.add(obj1);
list.add(obj2);
```
在这个例子中,我们创建了一个自定义类MyClass,并在List集合中添加了两个MyClass类型的对象obj1和obj2。
希望这个例子对您有所帮助!
相关问题
java中excel导出list集合,并且list集合的对象里面的一个属性是list的怎么导出ezcel
在Java中,将List集合及其嵌套List对象导出到Excel文件,通常使用Apache POI库。这里是一个基本的例子,假设你有一个名为`Person`的类,其中包含一个List属性`address`:
```java
import org.apache.poi.ss.usermodel.*;
import org.apache.poi.xssf.usermodel.XSSFWorkbook;
public class Main {
public static void exportListToExcel(List<Person> people) throws IOException {
Workbook workbook = new XSSFWorkbook(); // 使用XSSFWorkbook处理xlsx格式
Sheet sheet = workbook.createSheet("人员信息");
// 定义列标题
Row headerRow = sheet.createRow(0);
headerRow.createCell(0).setCellValue("姓名");
headerRow.createCell(1).setCellValue("地址");
// 遍历people列表,每一行代表一个Person对象
int rowNum = 1;
for (Person person : people) {
Row dataRow = sheet.createRow(rowNum++);
dataRow.createCell(0).setCellValue(person.getName());
// 导出嵌套的address List
List<String> addresses = person.getAddress();
if (addresses != null && !addresses.isEmpty()) {
for (int i = 0; i < addresses.size(); i++) {
dataRow.createCell(1 + i).setCellValue(addresses.get(i));
}
} else {
// 如果address为空,可以用一个默认值或者其他合适的方式处理
dataRow.createCell(1).setCellValue("");
}
}
// 保存到文件
try (OutputStream outputStream = new FileOutputStream("person_info.xlsx")) {
workbook.write(outputStream);
System.out.println("Excel文件已保存至person_info.xlsx");
} finally {
workbook.close();
}
}
public static class Person {
private String name;
private List<String> address;
// 构造方法、getter和setter省略
}
}
```
当你运行这个程序时,它会创建一个包含`people`列表中每个`Person`对象信息的Excel文件,包括姓名和地址。
判断两个list集合里的对象某个属性值是否一样_Java基础系列——集合
判断两个list集合里的对象某个属性值是否一样可以按照以下步骤进行:
1. 遍历第一个list集合,以该对象的某个属性值为key,将对象存入一个Map中。
2. 遍历第二个list集合,以该对象的某个属性值为key,从Map中获取该key对应的对象,进行比较。
3. 如果两个对象的属性值相同,则说明两个list集合里的对象某个属性值是一样的。
下面是Java代码实现:
```java
public boolean isSameProperty(List<Object> list1, List<Object> list2, String property) {
Map<Object, Object> map = new HashMap<>();
for (Object obj : list1) {
try {
Field field = obj.getClass().getDeclaredField(property);
field.setAccessible(true);
Object key = field.get(obj);
map.put(key, obj);
} catch (NoSuchFieldException | IllegalAccessException e) {
e.printStackTrace();
}
}
for (Object obj : list2) {
try {
Field field = obj.getClass().getDeclaredField(property);
field.setAccessible(true);
Object key = field.get(obj);
Object obj1 = map.get(key);
if (obj1 != null) {
if (obj.equals(obj1)) {
return true;
}
}
} catch (NoSuchFieldException | IllegalAccessException e) {
e.printStackTrace();
}
}
return false;
}
```
使用示例:
```java
List<User> list1 = new ArrayList<>();
list1.add(new User("张三", 20));
list1.add(new User("李四", 30));
List<User> list2 = new ArrayList<>();
list2.add(new User("王五", 20));
list2.add(new User("赵六", 30));
boolean isSameAge = isSameProperty(list1, list2, "age");
System.out.println("isSameAge: " + isSameAge); // true
```
其中,User类实现了equals和hashCode方法。
阅读全文