JAVA坎坷之路(7 day)

编程开发   © 文章版权由 admin 解释,禁止匿名转载

#楼主# 2022-6-26

[滑稽]今天必肝完集合

// ArrayList集合在查询元素十速度很快 但是在增加或删除元素时效率较低
// 为了克服这个局限性 可以使用List接口的另一个实现了LinkedList
// LinkedList内部维护了一个双向链表 链表中的每一个元素都是用引用的方式来记住它的前一个元素和后一个元素
// 从而可以将所有的元素彼此连接起来
// 当插入一个元素时,只需要修改元素之间的这种引用关系即可,删除一个节点亦是如此
// 所以LinkedList在进行元素的删除或增加操作时效率很高 但同样查询效率较低

// 退出功能
public void quit()
{
// 非0表示异常结束
System.exit(0);
}
/**
* Set集合
* HashSet是根据对象的散列值来确定元素在集合中的位置
* 具有良好的存取和查找性能
* TreeSet则是以二叉树的方式来存储元素
* 它可以对集合中的元素进行排序
*/
// set集合是无序的 且不能重复 大家还记得吗?
HashSet set = new HashSet>();

set.add("a");
set.add("a");
set.add("b");

for (String s : set) {
System.out.println(s);
}

其他方法不在演示 都是一样的[滑稽][滑稽]

[滑稽][滑稽][滑稽]
treeset排序
可以自定义
但需要重写方法
我这里就单纯的演示自然排序了

/**
* Map集合
*/
//HashMap 实例化HashMap对象
HashMap hashMap = new HashMap>();
// 将指定的值与此映射中的键关联 这里的键为k 值为kk
hashMap.put("k","kk");
// 返回指定键所映射的值 如果不存在映射关系则返回null
Object k = hashMap.get("k");
Object p = hashMap.get("p");
System.out.println("k:"+k+",p:"+p);
// 删除所有的键值对元素
// hashMap.clear();
// 返回键值对的个数
int size = hashMap.size();
System.out.println(size);
// 如果此映射包含指定的键映射 则返回true
boolean k2 = hashMap.containsKey("k");
System.out.println(k2);
// 如果此映射将一个或多个键映射到指定值 则返回true
hashMap.put("p","kk");
boolean kk = hashMap.containsValue("kk");
System.out.println(kk);
// 返回此映射中包含的键的set视图
Set objects = hashMap.keySet();
System.out.println(objects);
// 返回此映射中包含的值的Collection视图
Collection values = hashMap.values();
System.out.println(values);
// 返回此映射中包含的映射关系的set视图
Set> entries = hashMap.entrySet();
System.out.println(entries);
// 根据指定的键删除对应的值,返回被删除的值 如果没有则返回null
Object k1 = hashMap.remove("k");
Object p1 = hashMap.remove("p");
System.out.println("k1:"+k1+",p1:"+p1);

map集合的两种遍历
自行选择一种即可
[滑稽][滑稽][滑稽][滑稽][滑稽]

HashMap hashMap = new HashMap>();

hashMap.put("k","kk");
hashMap.put("k1","kk");
hashMap.put("k2","kk");
//forEach循环
hashMap.forEach((k,v)->{
System.out.println(k+"***"+v);
});
// 获取set视图
// 使用迭代器遍历

Set objects = hashMap.keySet();

Iterator iterator = objects.iterator();

while(iterator.hasNext())
{
Object next = iterator.next();
System.out.println(next);
}
treemap和treeset一样用来排序
这里不在多说[滑稽][滑稽][滑稽]
//Map接口还有一个实现类 Hashtable 这个和hashmap十分相似 区别在于hashtable是线程安全的
// 而Properties是hashtable的子类
Properties p = new Properties();
//Properties针对字符串存取提供了set和get两个方法
p.setProperty("a","b");
String a = p.getProperty("a");
System.out.println(a);
18楼
大ME 2022-6-26
可以用Python海龟画一个吗[滑稽][滑稽]
[滑稽][滑稽][滑稽]跑错地方了
//使用泛型对Huluxia类改造 注意这里的T你可以随意命名
//只不过T时type(类型的缩写)所以我们习惯写为T
public class Huluxia{

public static void main(String[] args){

/**
* 泛型
* 泛型是程序设计语言的一种特性
* 它允许程序员使用强类型程序设计语言代码时定义一些可变部分
* 这些可变部分在运行前必须指明
* 在编程的过程中用泛型代替某个实际的类型
* 而后通过实际调用时传入或推导的类型来对泛型进行替换
* 以达到代码复用的目的
*/
Huluxia huluxia = new Huluxia();
// 传入参数 由下面我们可以看出来 因为泛型的原因我们可以传入任意值
// 因为泛型会替换为对应的值
// 因而我们不用写多个方法
int[] a = {1,2,3};
huluxia.a("aa");
huluxia.a(123);
huluxia.a(a);

}
//定义一个泛型参数
public void a(T res){
System.out.println(res);
}
}

评论

登录后才可发表内容
  • 主题

    23

  • 帖子

    325

  • 关注者

    0

Copyright © 2019 凯特网.   Powered by HYBBS 2.3.4  

Runtime:0.1448s Mem:2128Kb