Java集合

1.String

2.Integer

3.java集合

存储多个数组

3.1 为什么使用集合

数组:int[] a = {1,2,3,34};

缺点:长度固定,类型固定,不好检测

3.2 常用集合

接口:collection

import java.util.ArrayList;
import java.util.List;

public class Collection {
    public static void main(String[] args){
        List<Integer> list = new ArrayList<>();
        //增加数据
        list.add(1);
        list.add(2);
        list.add(3);
        list.add(4);
        list.add(5);

        //查询,全查询--遍历
        for(int i=0;i<list.size();i++){
            System.out.println(list.get(i)+"\t");
        }
        System.out.println();

        //foreach
        for(int t:list){
            System.out.println(t+"\t");
        }
        System.out.println();

        //删除
        //list.remove(2)
        list.remove(Integer.valueOf(4));
        for(int t:list){
            System.out.println(t+"\t");
        }
        System.out.println();

        list.set(1,999);
        System.out.println(list);
    }
}

3.3 List接口

ArrayList   LinkedList    Vector

3.3.1 ArrayList

3.3.1.1 add()
3.3.1.2 remove()
3.3.1.3 set(index,值)
3.3.1.4 get()

1.for

2.foreach

3.3.1.5 toString

3.3.2删除问题

前移一位

import java.util.ArrayList;
import java.util.List;
import java.util.Iterator;

public class Delete {
    public static void main(String[] args) {
        List<Integer> list = new ArrayList<>();
        for (int i = 1; i <= 100; i++) {
            list.add(i);
        }
        System.out.println("");
    for(int i = 0;i < list.size(); i++){
        int n = list.get(i);
        if (n % 5 == 0 || n % 3 == 0){
            list.remove(Integer.valueOf(n));
            i--;
        }
    }

迭代器

import java.util.ArrayList;
import java.util.List;
import java.util.Iterator;

public class Delete {
    public static void main(String[] args) {
        List<Integer> list = new ArrayList<>();
        for (int i = 1; i <= 100; i++) {
            list.add(i);
        }
        System.out.println("");
        Iterator<Integer> it = list.iterator();
        while (it.hasNext()) {
            int n = it.next();
            if (n % 3 == 0 || n % 5 == 0) {
                it.remove();
            }
        }
        System.out.println(list);
    }
}

4 Array

底层是数组,大小是固定

思路:创建新数组,原来容量1.5,拷贝数据

4.1 创建对象

每次扩容是原大小1.5倍

ArrayList初始大小1.5倍

ArrayList初始值大小:10

private static final int DEFAULT_CAPACITY = 10;

设置初始值,目的减小扩容次数

List<Student>List = new ArrayList<>(200)

4.2.3 set(index,obj)

5 Linklist

查询,修改效率低(数组)List<Integer>list = new ArrayList<>();

删除,添加效率高(链表)List<Integer>list2 = new LinkedList<>();

创建一个20位随机数链表

有一个List集合存入20个数据,随机产生,不能保证数据不重复,排除所有重复选项

package LinkedList;
import java.util.LinkedList;
import java.util.Random;
import java.util.List;

public class Linklist {
    public static void main(String[] args) {
        List<Integer>list = new LinkedList<>();
        Random ran = new Random();
        for (int i = 0; i <= 20; i++) {
            while(true) {
                int n = ran.nextInt(30) + 1;
                if(!list.contains(n)) {
                    list.add(n);
                    break;//不重复
                }
            }
        }
        System.out.println(list);
    }
}
import java.util.HashSet;
import java.util.Random;
import java.util.Set;
//利用了set的排他性,不允许有重复
public class SetDemo {
    public static void main(String[]args){
        Set<Integer> r = new HashSet<>();
        Random random = new Random();
        while(r.size() < 20){
            int n = random.nextInt(20)+1;
            r.add(n);
        }
        System.out.println("set:" + r);
    }
}

6.Set

有一个list集合,有若干数据有重复数据,去掉重复数据

import java.util.HashSet;
import java.util.LinkedList;
import java.util.List;
import java.util.Set;

public class SetDemo2 {

    public static void main(String[]args){
        List<Integer> list = new LinkedList<>();
        list.add(1);
        list.add(1);
        list.add(3);
        list.add(5);
        list.add(5);
        list.add(6);
        list.add(3);
        list.add(7);

        Set<Integer> set = new HashSet<>();
        set.addAll(list);
        list.clear();
        list.addAll(set);
        System.out.println(list);
        /*
        for (int i=0;i<list.size();i++) {
            set.add(list.get(i));
        }
        System.out.println(set);
        list.clear();

        for(int t:set) {
            list.add(t);
        }
        System.out.println(set);
        */
        /*for (int i=0;i<list.size();i++){
            int n = list.get(i);
            for(int j=i+1;j<list.size();i++){
                if (n==list.get(j)){
                    list.set(j,9999);
                }
            }*/
        }
    }

7.Stack(栈)

LIFO,先进后出

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值