java new 一个list集合里面放对象_超详细的Java面试题汇总(基础篇+框架篇)
时间: 2024-02-07 14:04:07 浏览: 31
好的,针对您的问题,您可以使用以下代码创建一个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。
希望这个例子对您有所帮助!
相关问题
判断两个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方法。
java将list集合中对象里面的字段生成一个新的集合
可以通过Java 8的Stream API来实现将List集合中对象里面的字段生成一个新的集合。具体做法如下:
假设有一个Person类,其中有一个name属性:
```
public class Person {
private String name;
public Person(String name) {
this.name = name;
}
public String getName() {
return name;
}
}
```
现在有一个List<Person>集合,我们需要将其中每个Person对象的name属性提取出来生成一个新的List<String>集合,可以使用如下代码:
```
List<Person> personList = new ArrayList<>();
personList.add(new Person("Alice"));
personList.add(new Person("Bob"));
personList.add(new Person("Charlie"));
List<String> nameList = personList.stream()
.map(Person::getName)
.collect(Collectors.toList());
```
上述代码中,通过stream()方法将List转换成Stream,然后使用map()方法将每个Person对象转换成它的name属性,最后使用collect()方法将所有name属性收集成一个List<String>集合。