搭建java环境和java学习

https://blog.csdn.net/fishe_r/article/details/18863447

其中的

java配置文件用:


{
"shell_cmd": "runJava.bat \"$file\"",
"file_regex": "^(...*?):([0-9]*):?([0-9]*)",
"selector": "source.java",
"encoding":"UTF-8"
}

就行.这样能显示中文

 环境变量做好后,用cmd中java -version来看是否成功安装

修改快捷键

在Sublime中点击【Preferences】-【Key Bindings-User】,打开配置文件

复制这一句,{ "keys": ["f5"], "command": "build" }并且粘贴到右边,然后保存就大功告成。

关闭退出来,按f5运行试试

干死升级提醒●https://blog.csdn.net/xlei1123/article/details/52702447         最后的注册码百度一下最新的填上.

https://www.cnblogs.com/joeblackzqq/p/4485067.html       安装解码显示中文

● a.equals(b)  返回a,b的值是否相等

a==b   返回a,b地址是否相同

但是8大基本类型里面的==是判断值相等.

●重载的方法必须拥有不同的参数列表。你不能仅仅依据修饰符或者返回类型的不同来重载方法。

bitset 也就是c++的bitmap

import java.util.BitSet;
 
public class BitSetDemo {
 
  public static void main(String args[]) {
     BitSet bits1 = new BitSet(16);
     BitSet bits2 = new BitSet(16);
      
     // set some bits
     for(int i=0; i<16; i++) {
        if((i%2) == 0) bits1.set(i);
        if((i%5) != 0) bits2.set(i);
     }
     System.out.println("Initial pattern in bits1: ");
     System.out.println(bits1);
     System.out.println("\nInitial pattern in bits2: ");
     System.out.println(bits2);
 
     // AND bits
     bits2.and(bits1);
     System.out.println("\nbits2 AND bits1: ");
     System.out.println(bits2);
 
     // OR bits
     bits2.or(bits1);
     System.out.println("\nbits2 OR bits1: ");
     System.out.println(bits2);
 
     // XOR bits
     bits2.xor(bits1);
     System.out.println("\nbits2 XOR bits1: ");
     System.out.println(bits2);
  }
}
View Code

字典:

import java.util.*;

public class Test {

   public static void main(String[] args) {
      Map m1 = new HashMap(); 
      m1.put("Zara", "8");
      m1.put("Mahnaz", "31");
      m1.put("Ayan", "12");
      m1.put("Daisy", "14");
      System.out.println(" Map Elements");
      System.out.print("\t" + m1);
   }
}
View Code
HashMap和Hashtable都是存储“键值对(key-value)”的散列表,而且都是采用拉链法实现的。
存储的思想都是:通过table数组存储,数组的每一个元素都是一个Entry;而一个Entry就是一个单向链表,Entry链表中的每一个节点就保存了key-value键值对数据。

添加key-value键值对:首先,根据key值计算出哈希值,再计算出数组索引(即,该key-value在table中的索引)。然后,根据数组索引找到Entry(即,单向链表),再遍历单向链表,将key和链表中的每一个节点的key进行对比。若key已经存在Entry链表中,则用该value值取代旧的value值;若key不存在Entry链表中,则新建一个key-value节点,并将该节点插入Entry链表的表头位置。
删除key-value键值对:删除键值对,相比于“添加键值对”来说,简单很多。首先,还是根据key计算出哈希值,再计算出数组索引(即,该key-value在table中的索引)。然后,根据索引找出Entry(即,单向链表)。若节点key-value存在与链表Entry中,则删除链表中的节点即可。
View Code     字典的原理

其实,若了解它们之间的不同之处后,可以很容易的区分根据情况进行取舍。例如:(01) 若在单线程中,我们往往会选择HashMap;而在多线程中,则会选择Hashtable。(02),若不能插入null元素,则选择Hashtable;否则,可以选择HashMap。

红黑树:也叫有序哈希表

import java.util.Comparator;
import java.util.Iterator;
import java.util.Set;
import java.util.TreeMap;


public class Test {
    public static void main(String[] args) {
        TreeMap<String,Integer> map = new TreeMap<String,Integer>(new xbComparator());
        map.put("key_1", 1);
        map.put("key_2", 2);
        map.put("key_3", 3);   
        //红黑树里面的序是针对key 的//这个序就很好排了,因为红黑树默认是升序排列.所以
        //设置好排序函数xbComparator后,就按照key_3到key_1来输出了.
        //总结这种哈希表的使用情况:当需要利用key-value来存储数据时候,还需要对数据进行排序操作.
        //这时候显然是红黑树可以胜任的.也就是废除了哈希表查询O(1),而用log(N)的时间来实现,同时保证了
        //序结构.
        Set<String> keys = map.keySet();
        //变成迭代器
        Iterator<String> iter = keys.iterator();
        while(iter.hasNext())
        {
                String key = iter.next();
                System.out.println(" "+key+":"+map.get(key));
        }
    }
}
class xbComparator implements Comparator
{
    public int compare(Object o1,Object o2)
    {
        String i1=(String)o1;

        String i2=(String)o2;

        return -i1.compareTo(i2);
    }
}
View Code

虽然基本不用,但是因为以前对算法导论上面的红黑树结构读了半个月左右,突然感觉对java使用确实很好用.

●返回对象的类型:getClass 函数

TreeMap<String,Integer> map = new TreeMap<String,Integer>(new xbComparator());
System.out.println(map.getClass());

●安装linux的java

用的是windows的子系统.ubuntu16先安装的,后来发现还有18版本就安装18了,发现他安装很快,应该是直接在16上升级的.

安装:https://blog.csdn.net/weixin_41977631/article/details/80672717

试了可以安装,但是400多mb.就算了,还是用windows的吧

posted on 2018-07-05 22:05  张博的博客  阅读(135)  评论(0编辑  收藏  举报

导航