数据结构a

ArrayList

1.动态数组

2.插入有序

public static void main(String[] args) {
        ArrayList<Integer> arrayList = new ArrayList<Integer>();
        arrayList.add(1);
        arrayList.add(2);
        arrayList.add(7);
        arrayList.add(5);
        arrayList.add(3);
        System.out.println(arrayList);
        System.out.println(arrayList.get(0));
        arrayList.set(1, 100);
        System.out.println(arrayList);
        arrayList.remove(0);
        System.out.println(arrayList.contains(7));

        //排序,默认顺序
        Collections.sort(arrayList);
        System.out.println(arrayList);
      
        //排序,自定义逆序
        arrayList.sort(new Comparator<Integer>() {
           @Override
           public int compare(Integer num1,Integer num2){
               return num2 - num1;   //降序
           }
        });

        System.out.println(arrayList);
    }

HashMap

1.散列表,它存储的内容是键值对(key-value)映射

2.插入无序

HashMap<Integer, String> map = new HashMap<Integer, String>();
map.put(1,"a");
map.get(1);
map.remove(1);
map.size();  //大小
map.clear(); //删除所有键值对

//两数之和
public int[] twoSum(int[] nums, int target) {
        Map<Integer,Integer> hashMap = new HashMap<Integer,Integer>();
        for(int i=0;i<nums.length;i++){
            if(hashMap.containsKey(target-nums[i])){
                return new int[]{i,hashMap.get(target-nums[i])};
            }
            hashMap.put(nums[i],i);
        }
        return new int[0];
 }

HashSet

1.插入无序

2.元素去重

public static void main(String[] args) {
       HashSet<Integer> hashSet = new HashSet<>();
       hashSet.add(1);
       hashSet.add(3);
       hashSet.add(2);
       hashSet.add(4);
       hashSet.add(2);
       System.out.println(hashSet);
       System.out.println(hashSet.contains(3));
    }

Stack

  1. 先入后出

Stack stack=new Stack();isEmpty()push(E item)pop();

LinkedList

与ArrayList 相比,LinkedList 的增加和删除的操作效率更高,而查找和修改的操作效率较低

LinkedList 实现了 Queue 接口,可作为队列使用。

LinkedList 实现了 List 接口,可进行列表的相关操作。

LinkedList 实现了 Deque 接口,可作为队列使用。

add() addLast()

链表末尾添加元素

addFirst()

元素添加到头部

remove() removeFirst()

删除并返回第一个元素

get()

获取元素

StringBuilder

字符串相等用 equals() 不能用 ==

字符串是否为空 isEmpty()

StringBuilder是线程不安全的,它的执行效率比StriingBuffer要高

StringBuffer是线程安全的,它的执行效率比StringBuilder要低

StringBuilder str = new StringBuilder();
str.append();
str.isEmpty();
str.equals();  
str.length();  长度

String substring(int start) 返回子串;
String substring(int start,int end) 返回子串;
String toString() 返回value形成的字符串;
int lastIndexOf(String str) 返回str最后出现的位置;
int indexOf(String str) 返回str第一次出现的位置;
StringBuilder delete(int start,int end) 删除从start到end(不包含)之间的内容;
deleteCharAt(index) 删除对应位置数据 
reverse  字符串反转

char转int

方法1:char a = 'c';String as = String.valueOf(a);int ai = Integer.parseInt(as);方法2:int bi = a - '0';

int转string

1、String.valueOf(int i)

2、Integer.toString(int i)

3、i + “”; //i 为 int类型,int+string型就是先将int型的i转为string然后跟上后面的空string。

三种方法效率排序为:

Integer.toString(int i) > String.valueOf(int i) > i+""

数组

Arrays.sort() 排序

Arrays.asList() 将多个元素合并为一个list数组

List<List<Integer>> res = new ArrayList<>();res.add(Arrays.asList(nums[i],nums[l],nums[r]));

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值