您的位置:首页 > 编程语言 > Java开发

Java学习之二

2015-09-05 23:44 399 查看
1.float类型输入参数要加一个f:

float minSupport = 0.4f;

类集接口:

Collection 能使你操作对象组,它位于类集层次结构的顶层
List 扩展Collection去处理序列(对象的列表)
Set 扩展Collection去处理集合,集合必须包含唯一元素
SortedSet 扩展Set去处理排序集合

类集也使用Comparator, Iterator和ListIterator接口

collection的方法:

contain:是否包含类集元素

contianall:是否包含类集

hashset

hashset、arraylist保存的是指针。

添加元素的时候每次都要开辟内存。

    HashSet<Integer> can;
for (Integer item : tran) {
can = new HashSet<Integer>();
can.add(item);
if (!c1.contains(can)) {
c1.add(can);
}

以下的写法导致c1保存最后一个,因为can指向c1里面的元素,can.clear()之后,c1的元素就为空。

    HashSet<Integer> can;
for (Integer item : tran) {
can.clear();
can.add(item);
if (!c1.contains(can)) {
c1.add(can);
}

初始化:

HashSet<Integer> tran = new HashSet<Integer>(Arrays.asList(1, 3, 4));

循环的写法:

for (int i = 0; i < dataSet.size(); ++i) {}    

每次都要计算

for (int i = dataSet.size() - 1; i >= 0 ; --ii) {}  

不用每次计算,但是倒序

length = dataSet.size();

for (int i = 0; i < length; ++i) {}

不用每次计算,但是违反作用域最小原则

for (Iterator<Integer> it = list.iterator(); it.hasNext();) {it.hasNext();}

不用每次计算

for (HashSet<Integer> tran : dataSet) {}

简洁写法,jdk1.4向下不兼容

注意:不在循环内声明变量

hashmap遍历:

HashMap<HashSet<Integer>, Integer> sk = new HashMap<HashSet<Integer>, Integer>();

for (Map.Entry<HashSet<Integer>, Integer> tmp : sk.entrySet()) {}

hashset 转 arraylist:

  ArrayList<HashSet<Integer>> lk = new ArrayList<>();

  ArrayList<Integer> i1 = new ArrayList<>(lk.get(i));

arraylist排序:

  Collections.sort(i1);

  i1.sort(null);

hashset转数组:

  HashSet<Integer> l1 = lk.get(i);
Integer[] i1 = (Integer[])l1.toArray(new Integer[0]);
Arrays.sort(i1);
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: