[关闭]
@LIUHUAN 2019-03-15T22:46:50.000000Z 字数 3756 阅读 872

java 基本知识

java


for 循环

  1. for(表达式1;表达式2;表达式3){
  2. 循环语句
  3. }
  1. // 翻转数组
  2. // 头尾两个指针,交换两个变量的值,向中间移动指针,后面的向前移动,前面的向后移动。
  3. int[] A = new int[N];
  4. // 对A进行赋值
  5. for(int i=0,j = A.length-1;i <j ;i++,j--){
  6. int tmp = A[i];
  7. A[i] = A[j];
  8. A[j] = tmp;
  9. }

数组

  1. // 数组初始化
  2. int A[] ;// 声明数组变量,这时,A=null
  3. int A[] = new int[N];// 声明数组变量,并初始化A为一个大小为N的int数组
  4. // 数组的遍历
  5. for(int i=0;i < A.length;i++){
  6. // visited A[i]
  7. }
  8. // 也可以从尾部向头部遍历
  9. for(int i = A.length-1;i >=0 ;i--){
  10. // visited A[i]
  11. }
  1. // 删除索引为x的元素,x in [0,A.length)
  2. for(int i = x ;i < A.length-1;i++) {
  3. A[i] = A[i+1];
  4. }
  5. // 假设x=2,A=[1,2,3,4,5],删除x所在的元素后,A变成[1,2,4,5,5]
  6. // 最后一个元素还是5但是在逻辑上已经没有意义了,因为A的有效长度为A.length - 1 =4
  1. // 假设向数组里面追加(在末尾之后增加)一个元素x,数组假设为A
  2. int B[] = new int[A.length + 1]; //重新分配一个比A长1的数组
  3. for(int i = 0;i < A.length; i++){
  4. B[i] = A[i]; // 把A元素复制到B中
  5. }
  6. // 循环结束时:i = A.length
  7. B[A.length] = x; // 把x添加到最后一个元素
  8. A = B ;// 这个时候把A重新赋值为一个新的数组,旧的数组,会被回收掉。
  1. // 查找数组中值为x元素所在位置,如果没有x,用-1表示。找到一个就可以
  2. // 假设数组名为A
  3. int index = -1;
  4. for(int i = 0;i < A.length;i++) {
  5. if(A[i] == x) {
  6. index = i;
  7. break;// 找到了数据x,终止循环
  8. }
  9. }
  10. // 打印index,如果没有找到,index=-1 并且i== A.length-1,
  11. // 假设x=2,A=[1,2,3,4,2,-6]
  12. // 那么上述代码执行后,index = 1;因为A[1] = 2

线性容器

  1. //1.初始化一个ArrayList
  2. ArrayList<Integer> list;// 这个是声明一个ArrayList,并没有初始化,这时list==null
  3. ArrayList<Integer> list = new ArrayList<Integer>(); // 这个是声明并初始化一个int类型的ArrayList,Integer类是int类的包装
  4. // 尖括号里面可以认为和int []A ;这里面的int[]类似,表示里面存放的是int类型的数据
  5. // 表示ArrayList里面存放的数据类型,比如ArrayList<String> 里面存放的额就是String类型的数据
  6. // 2.向ArrayList里面添加元素,使用add方法。
  7. list.add(1);//
  8. list.add(2);// list 里面存放了[1,2]
  9. list.add(3);// list 里面存放了[1,2,3]
  10. // 3.遍历一个ArrayList
  11. for(int i = 0;i < list.size();i++){
  12. int t = list.get(i); // 这里会默认的把Integer变成int类型赋值给t
  13. // 打印t或者其他操作
  14. }
  1. // ArrayList之前的用法
  2. ArrayList list = new ArrayList();
  3. list.add("hello");
  4. list.add("world");
  5. // 这里没有指定ArrayList存放的是什么元素,但是默认的是什么元素都可以存放,需要注意的是,这里存放的元素必须是同一种类型,才有实际意义。
  6. for(int i = 0;i < list.size();i++){
  7. String t = (String)list.get(i);// 如果不是同一种类型的数据,这个语句会出现异常,例如里面有int数据,那么这里就会异常
  8. // visit t
  9. }
  1. LinkedList llist = new LinkedList();
  2. llist.add("zhang");
  3. llist.add("san");
  4. for(int i = 0;i < llist.size();i++) {
  5. String t = (String)llist.get(i);
  6. // visited t
  7. }

映射

  1. // set使用
  2. // 1.初始化set,里面存放的类型是String类型,也可以定义Integer类型
  3. Set<String> set = new Set<String>();
  4. // 2.添加元素
  5. set.add("hello");
  6. set.add("world");
  7. // 3.查询一个元素是否在set里面
  8. boolean exist = set.contains("hello");
  9. // exist = true;
  10. exist = set.contain("java");
  11. // exist = false;
  12. // 4.遍历一个set
  13. // 声明一个迭代器,可以用set.iterator()获取这个迭代器,类似于i=0;i<size;i++
  14. Iterator<String> it = set.iterator();
  15. while(it.hasNext()) { // it.hasNext() 表示是否还有元素没有遍历
  16. String t = it.next(); // it.next()表示当前遍历的元素
  17. System.out.println(t);
  18. }
  19. // 5.删除一个元素
  20. set.remove("hello"); // 可以删除一个不存在的元素
  1. // Map使用
  2. // 1.初始化,需要执行<keyType,valueType>内的两个类型,表示key的类型,value的类型
  3. Map<String,Integer> m = new HashMap<String,Integer>();
  4. // 2.添加key,value对
  5. m.put("zhang",1);
  6. m.put("wang",2);
  7. // m 里面为{"zhang":1,"wang":2}
  8. // 3.删除一个key,value对,
  9. m.remove("zhang");
  10. // m 里面为{"wang":2}
  11. // 4.遍历一个Map
  12. 首先获取一个所有的key的集合
  13. Set<String> mset = m.keySet();
  14. 通过key来获取value
  15. while(mset.hasNext()) {
  16. String key = mset.next();
  17. Integer t = m.get(key);
  18. }
  19. // 5.判断一个map里面是否有某个key
  20. boolean exist = m.containsKey("hello"); // exist = false;
  21. exist = m.containsKey("wang"); // exist = true;
  1. // 去除数组中出现多次的元素,只保留出现一次的元素
  2. 假设输入是int A[] 返回是一个int [];
  3. Set<Integer> set = new HashSet<Integer>();
  4. for(int i = 0;i < A.length;i++) {
  5. set.add(i);
  6. }
  7. int B[] = new int[set.size()];
  8. Iterator<Integer> it = set.iterator();
  9. int i = 0;
  10. while(it.hasNext()) {
  11. B[i] = it.next();
  12. }
  13. // 执行到这里,B就是A去除多次出现的元素后的数组了
添加新批注
在作者公开此批注前,只有你和作者可见。
回复批注