搭建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); } }
字典:
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); } }
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中,则删除链表中的节点即可。
其实,若了解它们之间的不同之处后,可以很容易的区分根据情况进行取舍。例如:(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); } }
虽然基本不用,但是因为以前对算法导论上面的红黑树结构读了半个月左右,突然感觉对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的吧