Java有一个list集合,集合内存储的都是int类型的值,且是从小到大排序好的,如何快速判断一个值是否在list集合中存在,如果存在该值在list集合中存储的位置是什么?
时间: 2023-04-10 11:02:01 浏览: 119
可以使用二分查找算法来快速判断一个值是否在list集合中存在,并且获取该值在list集合中存储的位置。具体实现可以使用Java自带的Collections.binarySearch()方法,该方法可以在有序的list集合中查找指定的元素,并返回该元素在list集合中的索引位置。如果该元素不存在于list集合中,则返回一个负数,表示该元素可以插入到list集合中的位置。
相关问题
java创建List集合存储Person对象信息,准换set去重;最后按照pname从小到大排序打印集合全部信息
可以按照以下步骤实现:
1. 定义Person类,包含属性pname、age和gender。
```java
public class Person {
private String pname;
private int age;
private String gender;
// 构造方法、getter和setter省略
}
```
2. 创建List集合,并添加Person对象信息。
```java
List<Person> personList = new ArrayList<>();
personList.add(new Person("Tom", 18, "Male"));
personList.add(new Person("Jerry", 20, "Female"));
personList.add(new Person("Tom", 22, "Male"));
personList.add(new Person("Mary", 18, "Female"));
personList.add(new Person("Lucy", 20, "Female"));
```
3. 利用HashSet去重。
```java
Set<Person> personSet = new HashSet<>(personList);
```
4. 将去重后的元素重新添加到List集合中。
```java
personList = new ArrayList<>(personSet);
```
5. 实现Comparator接口,按照pname从小到大排序。
```java
Collections.sort(personList, new Comparator<Person>() {
@Override
public int compare(Person o1, Person o2) {
return o1.getPname().compareTo(o2.getPname());
}
});
```
6. 打印集合全部信息。
```java
for (Person person : personList) {
System.out.println(person.getPname() + ", " + person.getAge() + ", " + person.getGender());
}
```
有二个长度一样的集合和列表,按从小到大的顺序组合成一个字典,用java
可以按照以下步骤实现:
1. 定义两个长度相同的数组或列表,分别存储集合和列表中的元素。
2. 对两个数组或列表进行排序(从小到大)。
3. 创建一个空的HashMap对象,用于存储组合后的字典。
4. 使用for循环,遍历排序后的数组或列表,将每个元素作为键值对中的键,同时将另一个数组或列表中对应位置的元素作为值。
5. 将键值对添加到HashMap对象中。
6. 返回HashMap对象作为结果。
以下是Java代码示例:
```java
import java.util.*;
public class Combination {
public static void main(String[] args) {
String[] set = {"a", "c", "b", "e", "d"};
Integer[] list = {3, 1, 5, 2, 4};
// 对集合和列表进行排序
Arrays.sort(set);
Arrays.sort(list);
// 创建空的HashMap对象
Map<String, Integer> map = new HashMap<>();
// 遍历排序后的数组或列表,将键值对添加到HashMap中
for (int i = 0; i < set.length; i++) {
map.put(set[i], list[i]);
}
// 输出结果
System.out.println(map);
}
}
```
输出结果为:{a=3, b=5, c=1, d=4, e=2}