JAVA学习之集合

集合

数组

List

  • ArrayList

    • 初始容量是10
    • 扩容方式在整数范围内原有容量*1.5倍
  • LinkedList

    • ArrayList底层是一个数组 可以随机访问->通过下表访问(list.get(20))
    • LinkedList 是一个链表 不能做随机访问,

对比

  • 数组一旦确定后 容量就不能改变了
  • ArraList 可一进行自动扩容
  • 数组使用的空间要小 ArrayList使用的空间要大一些
  • 数组可以是基本类型的 List都要是包装类型-》都要是对象的
//一旦确定之后长度就不能变化了
        int n=new Scanner(System.in).nextInt();
        String[] strs=new String[n];
        //你可以随便添加元素 不定长 自动扩容的
        List<String> list =new ArrayList<>();
        List<Integer> list1 =new ArrayList<>();
        //在最后面添加一个元素
        list.add("A");
        list1.add(1);
//        //删除一个元素
//        list.remove("A");
        //在某个位置设置成某个元素
        list.set(0,"B");

        //假如你一开始就是知道大概需要多大的空间
        new ArrayList<String>(100);
        //常规循环
        for (int i = 0; i < list.size(); i++) {
    
    
            //获得指定位置的元素
            String s = list.get(i);
            System.out.println(s);
        }
        //foreach循环
        for (String s : list) {
    
    
            System.out.println(s);
        }
        list.forEach(System.out::println);
        list.forEach(e->{
    
    
            System.out.println(e);
        });
        LinkedList<Object> objects = new LinkedList<>();

Map

HashMap

  • key不重复 后面的覆盖前面

  • key value结构

  • 输入顺序和存储顺序不一定一致

TreeMap

//默认是根据key的自然顺序做的排序
TreeMap<String, String> treeMap = new TreeMap<>();

treeMap.put("345","345763");
treeMap.put("2334566","adsfgadfhgaedhf");
treeMap.put("123","123");
treeMap.put("234","234354");
System.out.println(treeMap.get("123"));
System.out.println(treeMap);

Set

set中的元素不重复

HashSet

TreeSet

  • 根据元素的自然顺序做的排序
Set<String> set =new HashSet<>();
set.add("a");
set.add("a");
set.add("a");
System.out.println(set);
Iterator<String> iterator1 = set.iterator();
while (iterator1.hasNext()){
    
    
    System.out.println(iterator1.next());
}
for (String s : set) {
    
    
    System.out.println(s);
}

猜你喜欢

转载自blog.csdn.net/Walker7143/article/details/106036214
今日推荐