龙空技术网

java使用Collection单例集合实现元素存储

虚云幻仙 118

前言:

现在朋友们对“java存储”大体比较关怀,大家都需要学习一些“java存储”的相关知识。那么小编在网络上汇集了一些关于“java存储””的相关内容,希望我们能喜欢,姐妹们快快来学习一下吧!

/**

* 使用List/Set存储[1,10]整数1到10 不重复,放入顺序随机

*/

public class TestList {

public static void main(String[] args) {

List<Integer> al = new ArrayList<>();

Random r = new Random();

int count=0;

while(al.size()<10){

Integer e = r.nextInt(10)+1;

//.nextInt(10)返回0到9整数,再+1变为1到10

if (!al.contains(e)){

//List允许元素重复 需要在添加之前判断.contains()

al.add(e);

}

count++;

}

System.out.println(al);

//结果[8, 10, 6, 7, 4, 5, 2, 3, 9, 1] List不会自动对容器内的元素更改顺序/排序 每个存入的元素都有index index是从0开始顺序的

System.out.println(count);

}

}

class TestSet{

public static void main(String[] args) {

Set<Integer> hs = new HashSet<>();

int count = 0;

while (hs.size()<10){

hs.add((int)(Math.random()*10+1));

count++;

//Set集合要求元素互异 存入重复元素会被舍弃

}

System.out.println(hs);

//结果[1, 2, 3, 4, 5, 6, 7, 8, 9, 10] HashSet伪排序 初始通过[16]长度数组+单向链表进行存储 每个元素需要.hashCode()返回结果%16 存放到对应的位置

//Integer重写.hashCode()直接return value 1到10%16结果为1到10 遍历时从前往后依次取出 结果恰好为从小到大顺序

System.out.println(count);

hs.add(16);

System.out.println(hs);

//结果[16, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10] 16%16=0 存放到1的前面 遍历的时候元素的顺序不再有序

}

}

标签: #java存储