集合框架Collection

集合框架Collection

list系列集合
添加元素是有序,可重复,有索引的。
List集合的特有方法
List集合因为支持索引,所以多了很多与索引相关的方法,当然,Collection的功能List也都继承了。
void add(int index,E element)
在此集合中的指定位置插入指定的元素

E remoVe(int index)
删除指定索引处的元素,返回被删除的元素
E set(int index,E element)
修改指定索引处的元素,返回被修改的元素
E get(int index)
返回指定索引处的元素
ArrayList,Lineklist有序,可重复,有索引的。
LinkedList集合的底层原理
基于双链表实现的。
特点:查询慢,增删相对较快,但对首尾元素进行增删改查的速度是极快的。
LinkedList新增了:很多首尾操作的特有方法。
public void addFirst(E e) 在该列表开头插入指定的元素
public Void addLast(E e)将指定的元素追加到此列表的末尾
public EgetFirst() 返回此列表中的第一个元素,删除并返回第一个元素。
public EgetLast() public E removeFirst() public EremoveLast()
返回此列表中的最后一个元素从此列表中,
从此列表中删除并返回最后一个元素。
set系列集合
添加元素是无序的,不重复,无索引的。
hashSet无序,不重复,无索引。
LinkedHashSet是有序,不重复,无索引的。
TreeSet按照大小默认升序排列,不重复,无索引的。
关于哈希值
·就是一个int类型的数值,Java中每个对象都有一个哈希值。
·Java中的所有对象,都可以调用0bejct类提供的hashCode方法,返回该对象自己的哈希值。
public int hashCode():返回对象的哈希码值。
对象哈希值的特点
同一个对象多次调用hashCode()方法返回的哈希值是相同的。
不同的对象,它们的哈希值一般不相同,但也有可能会相同(哈希碰撞)。
·就是一个int类型的数值,Java中每个对象都有一个哈希值。
可变参数
就是一种特殊形参,定义在方法、构造器的形参列表里,格式是:数据类型…参数名称;
可变参数的特点和好处·特点:可以不传数据给它;可以传一个或者同时传多个数据给它;也可以传一个数组给它。好处:常常用来灵活的接收数据。
可变参数的注意事项:
可变参数在方法内部就是一个数组。
一个形参列表中可变参数只能有一个,可变参数必须放在形参列表的最后面。
Collections
是一个用来操作集合的工具类
Collections提供的常用静态方法
pub1ic static boolean addA11(Co1lection<? super T>c,T.……elements)
给集合批量添加元系

public class CollectionTest1 {
    public static void main(String[] args) {
        //1.为集合批量添加数据
        List<String> names=new ArrayList<>();
        Collections.addAll(names,"张三","李四","王五","张小");
        System.out.println(names);
        //2.打乱list元素中的元素顺序
        Collections.shuffle(names);
        System.out.println(names);
        //sout可以对list集合中的元素进行升序排序
        List<Integer> list=new ArrayList<>();
        list.add(5);
        list.add(10);
        list.add(8);
        System.out.println(list);
    }
}

public staticvoid shuff1e(List<?>1ist)
Ao
打乱List集合中的元系顺序
pub1icstaticVoidsort(List1ist)
对List集合中的元素进行升序排序
pub1ic static void sort(List1ist,Comparator<?Super T>c)
对List集合中元素,按照比较噐对象指定的规则进行排序。
Map
Map是双列集合的祖宗,它的功能是全部双列集合都可以继承过来使用的。
Map的常用方法如下:
方法名称说明public Vput(K key,V value) 添加元素

public class Map_Test1 {
    public static void main(String[] args) {
        Map<String,Integer> map=new HashMap<>();//一行经典代码,按照键,无序,不重复,无索引
        map.put("手表",100);
        map.put("手表",220);
        map.put("手表",250);
        map.put("手机",10);
        map.put(null,null);
        System.out.println(map);

        Map<Integer,String> map1=new TreeMap<>();
        map1.put(23,"java");
        map1.put(24,"MySQL");
        map1.put(18,"岳");
        map1.put(20,"张三");
        System.out.println(map1);

public int size() 获取集合的大小。
public void clear() 清空集合。
public boolean isEmpty() 判断集合是否为空,为空返回true,反之。
public V get(Object key) 根据键获取对应值。
public V remove(Object key) 根据键删除整个元素。
public boolean containsKey(0bject key) 判断是否包含某个键。
public boolean containsValue(0bject value) 判断是否包含某个值。
public SetkeySet() 获取全部键的集合。
public Collectionvalues() 获取Map集合的全部值。

public class Map_Test2 {
    public static void main(String[] args) {
        Map<String,Integer> map=new HashMap<>();//一行经典代码,按照键,无序,不重复,无索引
        map.put("手表",100);
        map.put("手表",220);
        map.put("手表",250);
        map.put("手机",10);
        map.put("Java",11);
        map.put(null,null);
        System.out.println(map);
        //获取map集合的大小
        System.out.println(map.size());
        //清空集合
        //map.clear();
        //System.out.println(map);
        // 判断集合是否为空
        System.out.println(map.isEmpty());
        //根据map里的键获取对应值
        int a1=map.get("手表");
        System.out.println(a1);
        //删除指定的整个元素
        map.remove("手表");
        System.out.println(map);
        //判断是否包含某个键
        System.out.println(map.containsKey("手表"));
        System.out.println(map.containsKey("手机"));
        System.out.println(map.containsKey("手机"));
        System.out.println(map.containsKey("java"));
        //判断是否有那个值
        System.out.println(map.containsValue(2));
        //获取Map集合的全部键
        Set<String> keys=map.keySet();
        System.out.println(keys);
        //获取Map集合的全部值
        Collection<Integer> valus=map.values();
        System.out.println(valus);
        //把其他Map集合中的数据插入到自己的集合中来
        Map<String,Integer> map1=new HashMap<>();
       map1.put("java1",23);
       map1.put("CSDN",18);
        Map<String,Integer> map2=new HashMap<>();
        map2.put("java2",24);
        map2.put("java3",26);
        map1.putAll(map2);
        System.out.println(map1);
        System.out.println(map2);
    }
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值