数组和集合的区别?

数组和集合的区别?,第1张

1数组长度不可变,集合长度可变;
2数组只能存储·基本数据类型,而集合既可以存储基本数据类型,也可以存储引用数据类型,当存储引用数据类型时,存的是地址值;
数组—— int[] arr;
集合—— List<Integer> list;

存储对象容器,面向对象语言对事物的体现都是以对象的形式,所以为了方便对多个对象的 *** 作,存储对象,集合是存储对象最常用的一种方式。
集合的出现就是为了持有对象。集合中可以存储任意类型的对象, 而且长度可变。在程序中有可能无法预先知道需要多少个对象, 那么用数组来装对象的话, 长度不好定义, 而集合解决了这样的问题。

数组和集合类都是容器
数组长度是固定的,集合长度是可变的。数组中可以存储基本数据类型,集合只能存储对象数组中存储数据类型是单一的,集合中可以存储任意类型的对象。
集合类的特点
用于存储对象,长度是可变的,可以存储不同类型的对象。

存储类型单一的数据容器, *** 作复杂(数组一旦声明好不可变)CRUD

集合做什么
1:将对象添加到集合
2:从集合中删除对象
3: 从集合中查找一个对象
4:从集合中修改一个对象就是增删改查
注意:集合和数组中存放的都是对象的引用而非对象本身
Java工程师对不同的容器进行了定义,虽然容器不同,但是还是有一些共性可以抽取最后抽取了一个顶层接口,那么就形成了一个集合框架。如何学习呢当然是从顶层学起,顶层里边具有最共性,最基本的行为。具体的使用,就要选择具体的容器了。为什么 因为不断向上抽取的东西有可能是不能创建对象的抽象的可能性很大,并且子类对象的方法更多一些 所以是看顶层,创建底层。那么集合的顶层是什么呢 叫做Collection
集合框架体系

集合有:map、set、list 用来存放对象的

Collection接口有两个子接口:
List(链表|线性表)
Set(集)
特点:
Collection中描述的是集合共有的功能(CRUD)
List可存放重复元素,元素存取是有序的
Set不可以存放重复元素,元素存取是无序的
javautilCollection
---| Collection 描述所有接口的共性
----| List接口 可以有重复元素的集合
----| Set 接口 不可以有重复元素的集合

查看api 文档Collection在在javautil 中(注意是大写Collection)
注意在现阶段遇到的 E T 之类的类型,需要暂时理解为object 因为涉及到了泛型
3:创建集合对象,使用Collection中的List的具体实现类ArrayList
1:Collection coll=new Arraylist();

增加:
1:add() 将指定对象存储到容器中
add 方法的参数类型是Object 便于接收任意对象
2:addAll() 将指定集合中的元素添加到调用该方法和集合中
删除:
3:remove() 将指定的对象从集合中删除
4:removeAll() 将指定集合中的元素删除
修改
5:clear() 清空集合中的所有元素
判断
6:isEmpty() 判断集合是否为空
7:contains() 判断集合何中是否包含指定对象
8:containsAll() 判断集合中是否包含指定集合
使用equals()判断两个对象是否相等
获取: 9:int size() 返回集合容器的大小

转成数组10: toArray() 集合转换数组

import javautilLinkedList;
public class fjhao {
public static void main(String[] args) {
Object obj1="a";
Object obj2="b";
Object obj3="d";
Object obj4="d";
LinkedList list = new LinkedList();
listadd(obj1);
listadd(obj2);
listadd(obj3);
listadd(obj4);
Systemoutprintln(list);
Systemoutprintln(listcontains("d"));
Systemoutprint(listindexOf("d"));
}
}
我测试过了没有问题,集合中的元素是从数据库第4列取出来的,而在程序中传的肯定不会错,估计数据库中存在空白字符,或者不可见字符。

package zhidao;
import javaawtBorderLayout;
import javaawtColor;
import javaawtContainer;
import javaawtDimension;
import javaawtFlowLayout;
import javaawteventActionEvent;
import javaawteventActionListener;
import javaxswingJFrame;
import javaxswingJLabel;
import javaxswingJMenu;
import javaxswingJMenuBar;
import javaxswingJMenuItem;
import javaxswingJPanel;
public class jiemian extends JFrame
{
private JLabel jl = new JLabel ("第一关");
private Container container = new JPanel ();
private static Thread t;
int time = 0;
public jiemian ()
{
JMenuBar menuBar = new JMenuBar ();
setJMenuBar (menuBar);
JMenu[] menu = new JMenu[] { new JMenu ("游戏"), new JMenu ("帮助") };
JMenuItem[] menuItem =
new JMenuItem[] { new JMenuItem ("新游戏"), new JMenuItem ("重新开始"), new JMenuItem ("记录"),
new JMenuItem ("退出"), new JMenuItem (" *** 作方法") };
for ( int i = 0; i < 2; i++ )
{
menuBaradd (menu[i]);
}
for ( int i = 0; i < 4; i++ )
{
menu[0]add (menuItem[i]);
}
menu[1]add (menuItem[4]);
menuItem[3]addActionListener (new ActionListener ()
{
public void actionPerformed ( ActionEvent e )
{
Systemexit (0);
}
});
t = new Thread (new Runnable ()
{
public void run ()
{
while (time <= 200)
{
if (time % 2 == 0)
{
containeradd (jl);
jlsetBounds (200, 200, 80, 80);
}
else
jlsetBounds (0, 0, 0, 0);
try
{
Threadsleep (1000);
}
catch (Exception e)
{
eprintStackTrace ();
}
time++;
if (time == 200)
{
time = 0;
}
}
}
});
tstart ();
thissetLayout (null);
containersetLayout (null);
containersetSize (500, 500);
containersetBackground (ColorBLUE);
thisadd (container);
thissetTitle ("坦克大战");
thissetDefaultCloseOperation (JFrameEXIT_ON_CLOSE);
thissetSize (700, 600);
thissetLocationRelativeTo (null);
thissetVisible (true);
}
public static void main ( String[] args )
{
new jiemian ();
}
}

//因为你的原代码中字符串才是键,而数字是值,
//改成下面的,最后一句将输出{1=A, 2=B, 3=three},
//这样才把m2的映射关系复制到m3中并替换了m3中从m1中复制过来的映射关系
import javautil;
public class TestMap {
public static void main(String args[]) {
Map m1 = new HashMap();
Map m2 = new TreeMap();
m1put(1,"one");
m1put(2,"two");
m1put(3,"three");
m2put(1,"A");
m2put(2,"B");
//m1put("one", 1);
//m1put("two", 2);
//m1put("three", 3);
//m2put("A", 1);
//m2put("B", 2);
Systemoutprintln(m1size());
Systemoutprintln(m1containsKey("one"));
Systemoutprintln(m2containsValue(1));
if(m1containsKey("two")) {
int i = (Integer)m1get("two");
Systemoutprintln(i);
}
Map m3 = new HashMap(m1);
m3putAll(m2);
Systemoutprintln(m3);
}
}

1、第一先打开eclipse软件。然后编辑基本的窗口容器代码。

2、第二然后将类继承JButton。在类的上面导入JButton包。代码:importsjavaxswingJButton。

3、第三然后在类中创建按钮对象。代码:JButtonc=newJButton(“开始”);

4、第四然后设置窗口容器的页面布局为空。代码:asetLayout(null);

5、第五然后就可以设置按键的大小还有位置。代码:csetBounds(x轴位置,y轴位置,按钮的宽,按钮的高);

6、第六然后再将按钮加入到窗口容器中。代码:aadd(c);


欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/yw/13369785.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-07-23
下一篇 2023-07-23

发表评论

登录后才能评论

评论列表(0条)

保存