点击一个网站跳转到图片怎么做的,wordpress添加导航菜单,线上建模培训班哪个好,北京商场面积排名文章目录一:前言1:为何刷题从C转java2:如何上手呢#xff1f;二:输入1:常规的输入2:关于其他输入符在nextLine()之前用吃掉回车符的问题解决3:常见输入之我们输入一串数到容器中三:常用的数据结构1:数组2.List3:Map4:Set5.栈6:队列一:前言 
1:为何刷题从C转java 
平时除了写项… 文章目录一:前言1:为何刷题从C转java2:如何上手呢二:输入1:常规的输入2:关于其他输入符在nextLine()之前用吃掉回车符的问题解决3:常见输入之我们输入一串数到容器中三:常用的数据结构1:数组2.List3:Map4:Set5.栈6:队列一:前言 
1:为何刷题从C转java 
平时除了写项目的话,才用java刷题的话就用C,但是这样的话,对java的一些基本知识掌握不牢固昨天jd的笔试当中 就有考察一些基础知识虽然算法思路是最重要的,具体用什么语言实现主要 看自己对那门语言的数据结构用的溜即可 但是的话,实现是相同的 以后毕竟还是要吃java这份饭的,对一些数据结构熟悉一些对于写一个工具类或者是阅读源码会更方便一些面试手撕算法题是可以用C的但是 从长远来看 用java刷题还是好处多多 
2:如何上手呢 
先了解常用的数据结构 无非就是数组 栈 队列 set list hashmap然后就是元素的插入元素的遍历一些常用API的调用以及每个数据结构的特点 
二:输入 
1:常规的输入 Scanner in  new Scanner(System.in);System.out.println(请输入你的年龄);int age  in.nextInt();//整数类型的输入方式System.out.println(请输入你的身高);double height  in.nextDouble();//小数类型的输入方式2:关于其他输入符在nextLine()之前用吃掉回车符的问题解决 
当比如我们在输入的是时候前面用了 nextInt();后面的话用了nextLine()的话其会吃掉回车符导致我们无法正常输入 那么我们的解决办法有两种 
将nextLine()改为next(),但是呢那么你就无法输入带空格的字符了将nextLine()的前面再加上nextLine()这样就可以帮助我们吃掉回车符那么我们正常的输入就不会有问题了。请看示例: Scanner in  new Scanner(System.in);System.out.println(请输入你的年龄);int age  in.nextInt();//整数类型的输入方式System.out.println(请输入苹果的英文);in.nextLine();//nextLine()会吃掉回车符,这样的话 我们下面就可以正常输入了String s1  in.nextLine();//nextLine是可以输入带空格的数据的。System.out.println(请输入你的身高);double height  in.nextDouble();//小数类型的输入方式3:常见输入之我们输入一串数到容器中 
这个是我们常用的之一当题目给出一串数的话,我们往往是要将其存放在容器当中的那么的话我们就可以方便操作了 Scanner in  new Scanner(System.in);int[] arr  new int[10];for (int i  0; i  10; i) {arr[i]  in.nextInt();}for (int i : arr) {System.out.print(i  );}三:常用的数据结构 
1:数组 
定义 int len  5;int[] arr  new int[len];赋值 
for (int i  0; i  arr.length; i) {Scanner scanner  new Scanner(System.in);arr[i]  scanner.nextInt();}遍历输出 
for (int i  0; i  arr.length; i) {System.out.println(arr[i]);
}常用API之排序 Arrays.sort(arr);2.List 
定义 ListInteger list  new ArrayList();赋值 for (int i  0; i  5; i) {int nums  in.nextInt();list.add(nums);}遍历 遍历输出 它的大小是 size() 区别数组的 length 区别字符串的 length() for (int i  0; i  list.size(); i) {System.out.print(list.get(i) );}API调用之sort升序 注意o1.conpareTo(o2) list.sort(new ComparatorInteger() {Overridepublic int compare(Integer o1, Integer o2) {return o1.compareTo(o2);//这里还可以用 o1 - o2 这个是等价的}});conpareTo的源码 其实就是3目运算符 public static int compare(int x, int y) {return (x  y) ? -1 : ((x  y) ? 0 : 1);}API调用之sort降序 ** 注意o2.compareTo(o1)** list.sort(new ComparatorInteger() {Overridepublic int compare(Integer o1, Integer o2) {return o2.compareTo(o1);//这里还可以用 o2 - o1 这个是等价的}});API调用之按照对象的某个字段排序 关于这个我们给出一个情景好记忆。 比如我们要给一个班级数学成绩排序,数学成绩相同的话,那么我们就按照名字的字典序进行排序。 输入5 wyj 100 aaa 90 abc 100 bbb 70 ccc 30  输出: abc 100 wyj 100 aaa 90 bbb 70 ccc 30 public class textList {public static void main(String[] args) {Scanner in  new Scanner(System.in);ArrayListStudent list  new ArrayList();System.out.print(请输入学上的个数:);int studentNums  in.nextInt();for (int i  0; i  studentNums; i) {String sname  in.next();//nextLine()输入的是一行数据会包含空格 eg wyj 100int sgrade  in.nextInt();list.add(new Student(sname,sgrade));}list.sort(new ComparatorStudent() {Overridepublic int compare(Student o1, Student o2) {if (o1.getGrate()  o2.getGrate()) {return o1.getName().compareTo(o2.getName());}return o2.getGrate()-(o1.getGrate());}});for (int i  0; i  studentNums; i) {System.out.println(list.get(i).toString());}}
}class Student {private String name;private int grate;public Student(String name, int grate) {this.name  name;this.grate  grate;}public String getName() {return name;}public void setName(String name) {this.name  name;}public int getGrate() {return grate;}public void setGrate(int grate) {this.grate  grate;}Overridepublic String toString() {return Student{ name  name  \ , grate  grate };}
}3:Map 
定义 MapString,Integer map  new HashMap();赋值 
for (int i  0; i  3; i) {String name   in.next();int grade  in.nextInt();map.put(name,grade);}遍历 map提供的get方法是根据key值来获取 value 值 for (String s : map.keySet()) {System.out.println(s     map.get(s));}常用API之判断某个值是否存在 
map.containsKey(wyj)常用API之移除某个key 
map.remove(wyj)Entry 由于Map中存放的元素均为键值对故每一个键值对必然存在一个映射关系。 Map中采用Entry内部类来表示一个映射项映射项包含Key和Value (我们总说键值对键值对, 每一个键值对也就是一个Entry) Map.Entry里面包含getKey()和getValue()方法 
IteratorMap.EntryInteger, Integer itmap.entrySet().iterator();while(it.hasNext()) {Map.EntryInteger,Integer entryit.next();int keyentry.getKey();int valueentry.getValue();System.out.println(key value);}entrySet entrySet是 java中 键-值 对的集合Set里面的类型是Map.Entry一般可以通过map.entrySet()得到。 entrySet实现了Set接口里面存放的是键值对。一个K对应一个V。 用来遍历map的一种方法。 SetMap.EntryString, String entryseSetmap.entrySet();for (Map.EntryString, String entry:entryseSet) {System.out.println(entry.getKey(),entry.getValue());}4:Set 
定义 HashSetInteger set  new HashSet();赋值 for (int i  0; i  3; i) {int nums  in.nextInt();set.add(nums);}遍历 这里的遍历的话 是可以去重的和升序的 for (int nums:set) {System.out.println(nums);}常用API之判断某个元素是否存在 
set.contains(元素)常用API之移除某个key 
set.remove(1)常用API之清空容器 set.clear();5.栈 
//这是一个双端队列
ArrayDequeCharacter deque  new ArrayDeque();//在栈中push就是往容器尾部插入一个值
deque.push(a);
deque.push(b);
deque.push(c);
deque.push(d);//访问栈顶元素
System.out.println(deque.peek());//删除一个元素
deque.pop();
System.out.println(deque.peek());6:队列 
//这是一个双端队列
ArrayDequeInteger deque  new ArrayDeque();//用add的话表示就是取元素顺序时候就是先进先出
deque.add(1);
deque.add(2);
deque.add(3);//我们用 peek()进行访问 访问的是队列首部元素
System.out.println(deque.peek());//我们用 pool()表示的就是移除队列首部元素
deque.poll();
System.out.println(deque.peek());//访问队尾元素
System.out.println(deque.getLast());//移除队尾元素
deque.removeLast();
System.out.println(deque.getLast());后序用到啥了再补充这些都是平常用C常用的API我就是在java当中找到对应的而已一直不太想用java写算法题就是因为原来的C的API调用熟悉了但是打败恐惧的最好办法就是直面恐惧我把以前不熟悉的总结出来再用java写算法就不怵了 后续继续补充 有错请指出。。。。