ArrayList
import java.util.ArrayList;
import java.util.List;
public class Time {
public static void main(String[] args) {
List<Integer>list= new ArrayList<>();
list.add(1);//向末尾插入元素
list.add(2);
list.add(3);
list.add(4);
list.set(0,8);//修改元素
list.add(2,6);//向指定位置插入元素,后面的下表依次后移,实际上是数组的拷贝。
list.size();//list的长度
list.contains(1);//list是否包含指定元素,帮我们做了遍历查找
list.remove(0);//删除下标为0的元素,后面的下标依次前移,也是数组拷贝。
System.out.println( list);
}
}
LinkedList
import java.util.LinkedList;
import java.util.List;
public class Time {
public static void main(String[] args) {
List<Integer>list= new LinkedList<>();//底层是双向链表
list.add(1);//向末尾添加元素。
list.add(2);
list.add(3);
list.add(1,9);//向指定位置插入元素
list.set(1,8);//修改指定位置元素
list.contains(8);//是否包含指定元素
list.size();//集合长度
list.get(2);//获得指定索引的元素
list.remove(1);//删除指定索引的元素
System.out.println( list);
}
}
List重写比较器格式
Collections.sort(list, new Comparator<Integer>() {
@Override
public int compare(Integer o1, Integer o2) {
if (o1 < o2){
return 1;
}else{
return -1;
}
}
});
HashMap:键值对一一对应,键唯一值不唯一,是无序的如果用自定义对象作为键需要重写hashcode和equals
import java.util.HashMap;
import java.util.Iterator;
import java.util.Map;
public class Time {
public static void main(String[] args) {
Map<String,Object>map=new HashMap<>();
map.put("age",5);//添加键值对
map.put("name","lihua");
map.put("ad","sc");
map.remove("age");//删除键值对,重载匹配到的值才删除。
map.replace("name","zhangsan");//修改值
map.replace("name","zhangsan","wangwu");//匹配到值才去修改他
map.size();//键值对数量
Iterator<Map.Entry<String,Object>>iterator= map.entrySet().iterator();
while (iterator.hasNext()){//这种遍历方法可以通过循环来判断,修改、插入、删除
Map.Entry<String,Object>entry=iterator.next();
System.out.println( entry.getKey()+"="+entry.getValue());
}
}
}
TreeSet:有序的,自动去重。自定义对象必须创建比较器
import java.util.*;
public class Time {
public static void main(String[] args) {
Set<Dog>set=new TreeSet<>(new Comparator<Dog>() {//重写比较器
@Override
public int compare(Dog o1, Dog o2) {
if(o1==null||o2==null||(o1.id==o2.id))
return 0;
if(o1.id>o2.id)
return 1;
return -1;
}
});
Dog dog=new Dog(8,"q",5);
set.add(new Dog(1,"lihua",5));
set.add(new Dog(2,"zhangsan",2));
set.add(new Dog(2,"zhangsan",2));
set.add(new Dog(2,"zhangsan",2));
set.add(dog);
dog.setId(6);
set.add(dog);//经过分析TreeSet的自定义对象比较不仅比较大小而且相等的属性会被删除,也就是去重,地址相等也会去重
set.remove(dog);//删除,这里没看到修改方法和查询方法
Iterator<Dog> iterator=set.iterator();
while (iterator.hasNext()){//遍历
Dog d=iterator.next();
System.out.println(d.getName());
}
}
}
class Dog{
Integer id;
String name;
Integer age;
public Dog(Integer id, String name, Integer age) {
this.id = id;
this.name = name;
this.age = age;
}
public Integer getId() {
return id;
}
public void setId(Integer id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public Integer getAge() {
return age;
}
public void setAge(Integer age) {
this.age = age;
}
@Override
public String toString() {
return "Dog{" +
"id=" + id +
", name='" + name + '\'' +
", age=" + age +
'}';
}
}
TreeMap
Map<Person2,Integer> map2 = new TreeMap<>(new Comparator<Person2>(){
@Override
public int compare(Person2 o1, Person2 o2)
{
if(o1 == null || o2 == null)
return 0;
return o1.getAge()-o2.getAge();
}
});
Person2 p1 = new Person2("zzh",18);
Person2 p2 = new Person2("jj",17);
Person2 p3 = new Person2("qq",19);
map2.put(p1, 1);
map2.put(p2, 2);
map2.put(p3, 3);
for(Entry<Person2, Integer> entry:map2.entrySet())
{
System.out.println(entry.getKey()+":"+entry.getValue());
}
网友评论