java集合类

1.Collection,Map层次图

Java 集合类的细节

2.Collection接口

list

存放有序且允许重复的集合的接口 这里的有序是指存入顺序和取出顺序相同。子类有:{ ArrayList,LinkedList}
ArrayList: 是通过数组结构实现的List集合 (通过索引值快速取出数据) 删除,插入慢,可使用for语句遍历
     public Object get(int index)           返回列表中指定位置的元素
    public void add(int index, Object element)   在列表的指定位置插入指定元素.将当前处于该位置的元素(如果有的话)和所有后续元素向右移动
     public Object set(int index, Object element) 用指定元素替换列表中指定位置的元素,返回替换出来的元素
     public Object remove(int index)         移除列表中指定位置的元素
     List subList(int fromIndex, int toIndex)     返回列表中指定的 fromIndex(包括 )和 toIndex(不包括)之间的部分视图。
     int indexOf(Object o)             返回此列表中第一次出现的指定元素的索引;如果此列表不包含该元素,则返回 -1。

LinkedList: 是通过使用双向链表实现的List集合(毫无疑问,LinkedList对于频繁的插入删除有着较好的效率,
       适合实现栈(Stack)和队列(Queue)。可使用for语句遍历


  void addFirst(E e)    将指定元素插入此双端队列的开头。
   void addLast(E e)      将指定元素添加到此列表的结尾。等效于add(E e)
  E getFirst()         返回此列表的第一个元素,等效于element(),只看不动.
  E getLast()         返回此列表的最后一个元素。只看不动.

set
存放无序且不包含重复元素的集合的接口。子类:{HashSet SorterSet}实现类:{ LinkedHashSet, TreeSet} 

LinkHashSet:

  根据元素的哈希码进行存放,同时用链表记录元素的加入顺序。 不能使用for语句遍历,可以使用foreach,Iterator
TreeSet:
 TreeSet使用红黑树结构对加入的元素进行排序存放,输出时也会按排序后的顺序,所以放入TreeSet中元素必须是”可排序的”
两个对象判断是否重复是通过HashCode和equals 比较的。TreeSe
t不能使用for语句遍历,可以使用foreach,Iterator
Collection代码实现

遍历:
        Collection <String>collection1=new ArrayList();
        collection1.add("1");
        collection1.add("1");
        Iterator<String> iterator=collection1.iterator();
        while (iterator.hasNext())
        Log.d(TAG, "onCreate:collection1:: "+iterator.next());

集合对象排序:

(1) 排序对象实现Comparable接口重写方法compareTo

public class Person2  implements Comparable<Person2>{

    public String name;
     public  int age;

    public Person2(String name, int age) {
        this.name = name;
        this.age = age;
    }


    @Override
    public int compareTo(@NonNull Person2 o) {
        return this.age-o.age;
    }
}
View Code

相关文章: