3.30日学习总结

1.今天学习了2个小时java,在力扣上刷了一道题目,在java上学习的内容主要是对于明天要讲的集合和泛型的内容。

1.对于泛型来说,他的意义就在于编写模板代码来适应任意类型,使用时不必对类型进行强制转换,通过编译器对类型进行检查,从而进行相对应的类型的操作。

// 创建可以存储String的ArrayList:
ArrayList<String> strList = new ArrayList<String>();
// 创建可以存储Float的ArrayList:
ArrayList<Float> floatList = new ArrayList<Float>();
// 创建可以存储Person的ArrayList:
ArrayList<Person> personList = new ArrayList<Person>();

上面的代码就是利用泛型,来创建任何你想要创建的ArrayList。

而对于编译器的检查环节就是下面这个代码

​ArrayList<String> strList = new ArrayList<String>();
strList.add("hello"); // OK
String s = strList.get(0); // OK
strList.add(new Integer(123)); // compile error!
Integer n = strList.get(0); // compile error!

​

我创建了一个strList,并将他定义为string类型,对于下面这两个操作时就会进行报错。

strList.add(new Integer(123)); // compile error!
Integer n = strList.get(0); // compile error!

2.对于集合来说,正如这个名字一般,集合就是一些元素组合成的一种东西,最简单的集合就是数组,然后还可以建立各种你想要的有特殊限制的集合,例如

可变大小的顺序链表;保证无重复元素的集合;

这些都是可以建立的集合

然后对于可变大小的顺序链表,java提供的比较常用的接口方法就是ArrayList

ArrayList一些主要的接口方法:

  • 在末尾添加一个元素:boolean add(E e)
  • 在指定索引添加一个元素:boolean add(int index, E e)
  • 删除指定索引的元素:E remove(int index)
  • 删除某个元素:boolean remove(Object e)
  • 获取指定索引的元素:E get(int index)
  • 获取链表大小(包含元素的个数):int size();

这些就是我今天学习的一些关于java的知识。

2.题目方面

 上面的就是题目内容,我使用的方法是利用map来记录每个元素的出现次数在第二次遍历时找到次数为一的元素就将return他的位置,如果没有找到就return -1;

代码如下

class Solution {
public:
    int firstUniqChar(string s) {
        unordered_map<int, int> a;
        for (char c: s) {
            a[c]++;
        }
        for (int i = 0; i < s.size(); i++) {
            if (a[s[i]] == 1) {
                return i;
            }
        }
        return -1;
    }
};

今天的学习总结就到这里了。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值